ckeditor-rails 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (708) hide show
  1. data/README.md +17 -14
  2. data/lib/ckeditor-rails/version.rb +1 -1
  3. data/vendor/assets/ckeditor/ckeditor/.htaccess +1 -1
  4. data/vendor/assets/ckeditor/ckeditor/CHANGES.html +139 -3
  5. data/vendor/assets/ckeditor/ckeditor/INSTALL.html +92 -92
  6. data/vendor/assets/ckeditor/ckeditor/LICENSE.html +2 -2
  7. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/application.xml +32 -32
  8. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/run.bat +9 -9
  9. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/run.sh +1 -1
  10. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/sample.html +45 -45
  11. data/vendor/assets/ckeditor/ckeditor/_samples/ajax.html +98 -98
  12. data/vendor/assets/ckeditor/ckeditor/_samples/api.html +192 -192
  13. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog.html +198 -198
  14. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog/my_dialog.js +28 -28
  15. data/vendor/assets/ckeditor/ckeditor/_samples/asp/advanced.asp +105 -105
  16. data/vendor/assets/ckeditor/ckeditor/_samples/asp/events.asp +136 -136
  17. data/vendor/assets/ckeditor/ckeditor/_samples/asp/index.html +103 -103
  18. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replace.asp +72 -72
  19. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replaceall.asp +77 -77
  20. data/vendor/assets/ckeditor/ckeditor/_samples/asp/sample_posteddata.asp +46 -46
  21. data/vendor/assets/ckeditor/ckeditor/_samples/asp/standalone.asp +72 -72
  22. data/vendor/assets/ckeditor/ckeditor/_samples/assets/_posteddata.php +59 -59
  23. data/vendor/assets/ckeditor/ckeditor/_samples/assets/output_xhtml.css +204 -204
  24. data/vendor/assets/ckeditor/ckeditor/_samples/assets/parsesample.css +70 -70
  25. data/vendor/assets/ckeditor/ckeditor/_samples/assets/swfobject.js +18 -18
  26. data/vendor/assets/ckeditor/ckeditor/_samples/autogrow.html +108 -107
  27. data/vendor/assets/ckeditor/ckeditor/_samples/bbcode.html +125 -125
  28. data/vendor/assets/ckeditor/ckeditor/_samples/devtools.html +94 -94
  29. data/vendor/assets/ckeditor/ckeditor/_samples/divreplace.html +154 -154
  30. data/vendor/assets/ckeditor/ckeditor/_samples/enterkey.html +115 -115
  31. data/vendor/assets/ckeditor/ckeditor/_samples/fullpage.html +82 -82
  32. data/vendor/assets/ckeditor/ckeditor/_samples/index.html +116 -116
  33. data/vendor/assets/ckeditor/ckeditor/_samples/jqueryadapter.html +99 -99
  34. data/vendor/assets/ckeditor/ckeditor/_samples/output_for_flash.html +275 -275
  35. data/vendor/assets/ckeditor/ckeditor/_samples/output_html.html +285 -285
  36. data/vendor/assets/ckeditor/ckeditor/_samples/output_xhtml.html +181 -177
  37. data/vendor/assets/ckeditor/ckeditor/_samples/php/advanced.php +120 -120
  38. data/vendor/assets/ckeditor/ckeditor/_samples/php/events.php +153 -153
  39. data/vendor/assets/ckeditor/ckeditor/_samples/php/index.html +47 -47
  40. data/vendor/assets/ckeditor/ckeditor/_samples/php/replace.php +87 -87
  41. data/vendor/assets/ckeditor/ckeditor/_samples/php/replaceall.php +88 -88
  42. data/vendor/assets/ckeditor/ckeditor/_samples/php/standalone.php +83 -83
  43. data/vendor/assets/ckeditor/ckeditor/_samples/placeholder.html +81 -81
  44. data/vendor/assets/ckeditor/ckeditor/_samples/readonly.html +91 -91
  45. data/vendor/assets/ckeditor/ckeditor/_samples/replacebyclass.html +64 -64
  46. data/vendor/assets/ckeditor/ckeditor/_samples/replacebycode.html +97 -97
  47. data/vendor/assets/ckeditor/ckeditor/_samples/sample.css +163 -163
  48. data/vendor/assets/ckeditor/ckeditor/_samples/sample.js +65 -65
  49. data/vendor/assets/ckeditor/ckeditor/_samples/sample_posteddata.php +21 -21
  50. data/vendor/assets/ckeditor/ckeditor/_samples/sharedspaces.html +153 -153
  51. data/vendor/assets/ckeditor/ckeditor/_samples/skins.html +110 -110
  52. data/vendor/assets/ckeditor/ckeditor/_samples/stylesheetparser.html +93 -93
  53. data/vendor/assets/ckeditor/ckeditor/_samples/tableresize.html +115 -115
  54. data/vendor/assets/ckeditor/ckeditor/_samples/ui_color.html +129 -129
  55. data/vendor/assets/ckeditor/ckeditor/_samples/ui_languages.html +134 -134
  56. data/vendor/assets/ckeditor/ckeditor/_source/adapters/jquery.js +306 -306
  57. data/vendor/assets/ckeditor/ckeditor/_source/core/_bootstrap.js +87 -87
  58. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor.js +141 -141
  59. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_base.js +235 -227
  60. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_basic.js +238 -238
  61. data/vendor/assets/ckeditor/ckeditor/_source/core/command.js +225 -209
  62. data/vendor/assets/ckeditor/ckeditor/_source/core/commanddefinition.js +129 -129
  63. data/vendor/assets/ckeditor/ckeditor/_source/core/config.js +447 -431
  64. data/vendor/assets/ckeditor/ckeditor/_source/core/dataprocessor.js +65 -65
  65. data/vendor/assets/ckeditor/ckeditor/_source/core/dom.js +20 -20
  66. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/comment.js +44 -32
  67. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/document.js +251 -251
  68. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/documentfragment.js +49 -49
  69. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/domobject.js +258 -258
  70. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/element.js +1796 -1681
  71. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/elementpath.js +117 -119
  72. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/event.js +145 -145
  73. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/node.js +691 -695
  74. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/nodelist.js +26 -26
  75. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/range.js +2068 -2032
  76. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/rangelist.js +213 -213
  77. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/text.js +128 -128
  78. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/walker.js +496 -462
  79. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/window.js +96 -96
  80. data/vendor/assets/ckeditor/ckeditor/_source/core/dtd.js +266 -266
  81. data/vendor/assets/ckeditor/ckeditor/_source/core/editor.js +1059 -1059
  82. data/vendor/assets/ckeditor/ckeditor/_source/core/editor_basic.js +186 -186
  83. data/vendor/assets/ckeditor/ckeditor/_source/core/env.js +305 -291
  84. data/vendor/assets/ckeditor/ckeditor/_source/core/event.js +342 -342
  85. data/vendor/assets/ckeditor/ckeditor/_source/core/eventInfo.js +120 -120
  86. data/vendor/assets/ckeditor/ckeditor/_source/core/focusmanager.js +152 -152
  87. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser.js +224 -224
  88. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/basicwriter.js +145 -145
  89. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/cdata.js +43 -43
  90. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/comment.js +60 -60
  91. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/element.js +308 -308
  92. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/filter.js +288 -288
  93. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/fragment.js +537 -497
  94. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/text.js +53 -55
  95. data/vendor/assets/ckeditor/ckeditor/_source/core/lang.js +157 -157
  96. data/vendor/assets/ckeditor/ckeditor/_source/core/loader.js +240 -240
  97. data/vendor/assets/ckeditor/ckeditor/_source/core/plugindefinition.js +83 -83
  98. data/vendor/assets/ckeditor/ckeditor/_source/core/plugins.js +103 -103
  99. data/vendor/assets/ckeditor/ckeditor/_source/core/resourcemanager.js +238 -238
  100. data/vendor/assets/ckeditor/ckeditor/_source/core/scriptloader.js +180 -180
  101. data/vendor/assets/ckeditor/ckeditor/_source/core/skins.js +184 -184
  102. data/vendor/assets/ckeditor/ckeditor/_source/core/themes.js +19 -19
  103. data/vendor/assets/ckeditor/ckeditor/_source/core/tools.js +763 -763
  104. data/vendor/assets/ckeditor/ckeditor/_source/core/ui.js +128 -128
  105. data/vendor/assets/ckeditor/ckeditor/_source/lang/_languages.js +84 -84
  106. data/vendor/assets/ckeditor/ckeditor/_source/lang/_translationstatus.txt +63 -61
  107. data/vendor/assets/ckeditor/ckeditor/_source/lang/af.js +815 -812
  108. data/vendor/assets/ckeditor/ckeditor/_source/lang/ar.js +815 -812
  109. data/vendor/assets/ckeditor/ckeditor/_source/lang/bg.js +815 -812
  110. data/vendor/assets/ckeditor/ckeditor/_source/lang/bn.js +815 -812
  111. data/vendor/assets/ckeditor/ckeditor/_source/lang/bs.js +815 -812
  112. data/vendor/assets/ckeditor/ckeditor/_source/lang/ca.js +815 -812
  113. data/vendor/assets/ckeditor/ckeditor/_source/lang/cs.js +815 -812
  114. data/vendor/assets/ckeditor/ckeditor/_source/lang/cy.js +815 -812
  115. data/vendor/assets/ckeditor/ckeditor/_source/lang/da.js +815 -812
  116. data/vendor/assets/ckeditor/ckeditor/_source/lang/de.js +815 -812
  117. data/vendor/assets/ckeditor/ckeditor/_source/lang/el.js +815 -812
  118. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-au.js +815 -812
  119. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-ca.js +815 -812
  120. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-gb.js +815 -812
  121. data/vendor/assets/ckeditor/ckeditor/_source/lang/en.js +815 -812
  122. data/vendor/assets/ckeditor/ckeditor/_source/lang/eo.js +815 -812
  123. data/vendor/assets/ckeditor/ckeditor/_source/lang/es.js +815 -812
  124. data/vendor/assets/ckeditor/ckeditor/_source/lang/et.js +815 -812
  125. data/vendor/assets/ckeditor/ckeditor/_source/lang/eu.js +815 -812
  126. data/vendor/assets/ckeditor/ckeditor/_source/lang/fa.js +815 -812
  127. data/vendor/assets/ckeditor/ckeditor/_source/lang/fi.js +815 -812
  128. data/vendor/assets/ckeditor/ckeditor/_source/lang/fo.js +815 -812
  129. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr-ca.js +815 -812
  130. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr.js +815 -812
  131. data/vendor/assets/ckeditor/ckeditor/_source/lang/gl.js +815 -812
  132. data/vendor/assets/ckeditor/ckeditor/_source/lang/gu.js +815 -812
  133. data/vendor/assets/ckeditor/ckeditor/_source/lang/he.js +815 -812
  134. data/vendor/assets/ckeditor/ckeditor/_source/lang/hi.js +815 -812
  135. data/vendor/assets/ckeditor/ckeditor/_source/lang/hr.js +815 -812
  136. data/vendor/assets/ckeditor/ckeditor/_source/lang/hu.js +815 -812
  137. data/vendor/assets/ckeditor/ckeditor/_source/lang/is.js +815 -812
  138. data/vendor/assets/ckeditor/ckeditor/_source/lang/it.js +815 -812
  139. data/vendor/assets/ckeditor/ckeditor/_source/lang/ja.js +815 -812
  140. data/vendor/assets/ckeditor/ckeditor/_source/lang/ka.js +815 -812
  141. data/vendor/assets/ckeditor/ckeditor/_source/lang/km.js +815 -812
  142. data/vendor/assets/ckeditor/ckeditor/_source/lang/ko.js +815 -812
  143. data/vendor/assets/ckeditor/ckeditor/_source/lang/lt.js +815 -812
  144. data/vendor/assets/ckeditor/ckeditor/_source/lang/lv.js +815 -812
  145. data/vendor/assets/ckeditor/ckeditor/_source/lang/mk.js +814 -0
  146. data/vendor/assets/ckeditor/ckeditor/_source/lang/mn.js +815 -812
  147. data/vendor/assets/ckeditor/ckeditor/_source/lang/ms.js +815 -812
  148. data/vendor/assets/ckeditor/ckeditor/_source/lang/nb.js +815 -812
  149. data/vendor/assets/ckeditor/ckeditor/_source/lang/nl.js +815 -812
  150. data/vendor/assets/ckeditor/ckeditor/_source/lang/no.js +815 -812
  151. data/vendor/assets/ckeditor/ckeditor/_source/lang/pl.js +815 -812
  152. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt-br.js +814 -811
  153. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt.js +815 -812
  154. data/vendor/assets/ckeditor/ckeditor/_source/lang/ro.js +815 -812
  155. data/vendor/assets/ckeditor/ckeditor/_source/lang/ru.js +815 -812
  156. data/vendor/assets/ckeditor/ckeditor/_source/lang/sk.js +815 -812
  157. data/vendor/assets/ckeditor/ckeditor/_source/lang/sl.js +815 -812
  158. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr-latn.js +815 -812
  159. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr.js +815 -812
  160. data/vendor/assets/ckeditor/ckeditor/_source/lang/sv.js +814 -811
  161. data/vendor/assets/ckeditor/ckeditor/_source/lang/th.js +815 -812
  162. data/vendor/assets/ckeditor/ckeditor/_source/lang/tr.js +814 -811
  163. data/vendor/assets/ckeditor/ckeditor/_source/lang/ug.js +814 -0
  164. data/vendor/assets/ckeditor/ckeditor/_source/lang/uk.js +815 -812
  165. data/vendor/assets/ckeditor/ckeditor/_source/lang/vi.js +815 -812
  166. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh-cn.js +815 -812
  167. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh.js +815 -812
  168. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +222 -222
  169. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/_translationstatus.txt +23 -0
  170. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/cs.js +89 -0
  171. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/cy.js +89 -0
  172. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/da.js +89 -0
  173. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/de.js +89 -0
  174. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/el.js +89 -0
  175. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/en.js +108 -108
  176. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/eo.js +89 -0
  177. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/fa.js +89 -0
  178. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/fi.js +89 -0
  179. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/fr.js +89 -0
  180. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/gu.js +89 -0
  181. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/he.js +89 -216
  182. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/it.js +89 -0
  183. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/mk.js +89 -0
  184. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/nb.js +89 -0
  185. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/nl.js +89 -0
  186. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/no.js +89 -0
  187. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/tr.js +89 -0
  188. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/ug.js +89 -0
  189. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/vi.js +89 -0
  190. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/zh-cn.js +89 -0
  191. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/plugin.js +47 -47
  192. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/dialogs/about.js +76 -76
  193. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/plugin.js +24 -24
  194. data/vendor/assets/ckeditor/ckeditor/_source/plugins/adobeair/plugin.js +228 -228
  195. data/vendor/assets/ckeditor/ckeditor/_source/plugins/ajax/plugin.js +152 -152
  196. data/vendor/assets/ckeditor/ckeditor/_source/plugins/autogrow/plugin.js +141 -88
  197. data/vendor/assets/ckeditor/ckeditor/_source/plugins/basicstyles/plugin.js +129 -101
  198. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bbcode/plugin.js +931 -931
  199. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bidi/plugin.js +334 -334
  200. data/vendor/assets/ckeditor/ckeditor/_source/plugins/blockquote/plugin.js +305 -305
  201. data/vendor/assets/ckeditor/ckeditor/_source/plugins/button/plugin.js +290 -290
  202. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/dialogs/paste.js +223 -223
  203. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/plugin.js +479 -453
  204. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colorbutton/plugin.js +300 -294
  205. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +387 -340
  206. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js +15 -15
  207. data/vendor/assets/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js +179 -177
  208. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/_translationstatus.txt +27 -0
  209. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/bg.js +16 -0
  210. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/cs.js +16 -0
  211. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/cy.js +16 -0
  212. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/da.js +16 -0
  213. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/de.js +16 -0
  214. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/el.js +16 -0
  215. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/en.js +16 -16
  216. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/eo.js +16 -0
  217. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/et.js +16 -0
  218. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/fa.js +16 -0
  219. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/fi.js +16 -0
  220. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/fr.js +16 -0
  221. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/gu.js +16 -0
  222. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/he.js +16 -0
  223. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/hr.js +16 -0
  224. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/it.js +16 -0
  225. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/nb.js +16 -0
  226. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/nl.js +16 -0
  227. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/no.js +16 -0
  228. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/pl.js +16 -0
  229. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/tr.js +16 -0
  230. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/ug.js +16 -0
  231. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/uk.js +16 -0
  232. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/vi.js +16 -0
  233. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/zh-cn.js +16 -0
  234. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/plugin.js +173 -173
  235. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js +1166 -1166
  236. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/plugin.js +3319 -3289
  237. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js +208 -207
  238. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js +1549 -1541
  239. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/dialogs/div.js +535 -535
  240. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/plugin.js +121 -121
  241. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/dialogs/docprops.js +674 -686
  242. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/plugin.js +22 -22
  243. data/vendor/assets/ckeditor/ckeditor/_source/plugins/domiterator/plugin.js +366 -361
  244. data/vendor/assets/ckeditor/ckeditor/_source/plugins/editingblock/plugin.js +278 -275
  245. data/vendor/assets/ckeditor/ckeditor/_source/plugins/elementspath/plugin.js +218 -218
  246. data/vendor/assets/ckeditor/ckeditor/_source/plugins/enterkey/plugin.js +433 -413
  247. data/vendor/assets/ckeditor/ckeditor/_source/plugins/entities/plugin.js +254 -250
  248. data/vendor/assets/ckeditor/ckeditor/_source/plugins/fakeobjects/plugin.js +175 -175
  249. data/vendor/assets/ckeditor/ckeditor/_source/plugins/filebrowser/plugin.js +533 -524
  250. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/dialogs/find.js +915 -903
  251. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/plugin.js +47 -47
  252. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/dialogs/flash.js +674 -673
  253. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/plugin.js +154 -154
  254. data/vendor/assets/ckeditor/ckeditor/_source/plugins/floatpanel/plugin.js +476 -428
  255. data/vendor/assets/ckeditor/ckeditor/_source/plugins/font/plugin.js +234 -234
  256. data/vendor/assets/ckeditor/ckeditor/_source/plugins/format/plugin.js +197 -197
  257. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/button.js +118 -118
  258. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/checkbox.js +153 -153
  259. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/form.js +177 -177
  260. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +100 -100
  261. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/radio.js +135 -135
  262. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/select.js +558 -558
  263. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textarea.js +135 -114
  264. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textfield.js +199 -199
  265. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/plugin.js +288 -288
  266. data/vendor/assets/ckeditor/ckeditor/_source/plugins/horizontalrule/plugin.js +48 -48
  267. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmldataprocessor/plugin.js +600 -595
  268. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmlwriter/plugin.js +319 -319
  269. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/dialogs/iframe.js +229 -229
  270. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/plugin.js +87 -87
  271. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframedialog/plugin.js +188 -188
  272. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/dialogs/image.js +1406 -1406
  273. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/plugin.js +164 -81
  274. data/vendor/assets/ckeditor/ckeditor/_source/plugins/indent/plugin.js +480 -461
  275. data/vendor/assets/ckeditor/ckeditor/_source/plugins/justify/plugin.js +251 -253
  276. data/vendor/assets/ckeditor/ckeditor/_source/plugins/keystrokes/plugin.js +225 -225
  277. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/anchor.js +144 -144
  278. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/link.js +1427 -1424
  279. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/plugin.js +374 -374
  280. data/vendor/assets/ckeditor/ckeditor/_source/plugins/list/plugin.js +967 -734
  281. data/vendor/assets/ckeditor/ckeditor/_source/plugins/listblock/plugin.js +260 -268
  282. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +225 -225
  283. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/plugin.js +66 -66
  284. data/vendor/assets/ckeditor/ckeditor/_source/plugins/maximize/plugin.js +353 -352
  285. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menu/plugin.js +542 -541
  286. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menubutton/plugin.js +98 -98
  287. data/vendor/assets/ckeditor/ckeditor/_source/plugins/newpage/plugin.js +55 -54
  288. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pagebreak/plugin.js +164 -164
  289. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panel/plugin.js +396 -403
  290. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panelbutton/plugin.js +144 -144
  291. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/filter/default.js +1367 -1367
  292. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/plugin.js +141 -141
  293. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +67 -67
  294. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/plugin.js +98 -98
  295. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +71 -71
  296. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/_translationstatus.txt +26 -0
  297. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/bg.js +16 -0
  298. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/cs.js +16 -0
  299. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/cy.js +16 -0
  300. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/da.js +16 -0
  301. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/de.js +16 -0
  302. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/el.js +16 -0
  303. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/en.js +16 -16
  304. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/eo.js +16 -0
  305. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/et.js +16 -0
  306. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/fa.js +16 -0
  307. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/fi.js +16 -0
  308. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/fr.js +16 -0
  309. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/he.js +16 -16
  310. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/hr.js +16 -0
  311. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/it.js +16 -0
  312. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/nb.js +16 -0
  313. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/nl.js +16 -0
  314. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/no.js +16 -0
  315. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/pl.js +16 -0
  316. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/tr.js +16 -0
  317. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/ug.js +16 -0
  318. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/uk.js +16 -0
  319. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/vi.js +16 -0
  320. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/zh-cn.js +16 -0
  321. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/plugin.js +171 -171
  322. data/vendor/assets/ckeditor/ckeditor/_source/plugins/popup/plugin.js +69 -64
  323. data/vendor/assets/ckeditor/ckeditor/_source/plugins/preview/plugin.js +113 -109
  324. data/vendor/assets/ckeditor/ckeditor/_source/plugins/print/plugin.js +42 -42
  325. data/vendor/assets/ckeditor/ckeditor/_source/plugins/removeformat/plugin.js +185 -185
  326. data/vendor/assets/ckeditor/ckeditor/_source/plugins/resize/plugin.js +169 -168
  327. data/vendor/assets/ckeditor/ckeditor/_source/plugins/richcombo/plugin.js +381 -381
  328. data/vendor/assets/ckeditor/ckeditor/_source/plugins/save/plugin.js +56 -56
  329. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/options.js +537 -537
  330. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +71 -71
  331. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/plugin.js +973 -964
  332. data/vendor/assets/ckeditor/ckeditor/_source/plugins/selection/plugin.js +1855 -1601
  333. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/plugin.js +160 -160
  334. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showborders/plugin.js +207 -207
  335. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/dialogs/smiley.js +224 -224
  336. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/plugin.js +94 -94
  337. data/vendor/assets/ckeditor/ckeditor/_source/plugins/sourcearea/plugin.js +209 -209
  338. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +350 -350
  339. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/_translationstatus.txt +19 -0
  340. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/cs.js +126 -0
  341. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/cy.js +126 -0
  342. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/de.js +126 -0
  343. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/en.js +126 -89
  344. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/eo.js +126 -0
  345. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/et.js +126 -0
  346. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/fa.js +126 -0
  347. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/fi.js +126 -0
  348. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/fr.js +126 -0
  349. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/hr.js +126 -0
  350. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/it.js +126 -0
  351. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/nb.js +126 -0
  352. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/nl.js +126 -0
  353. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/no.js +126 -0
  354. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/tr.js +126 -0
  355. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/ug.js +126 -0
  356. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/zh-cn.js +126 -0
  357. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/plugin.js +70 -70
  358. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/plugin.js +1706 -1696
  359. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/styles/default.js +88 -88
  360. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylescombo/plugin.js +218 -218
  361. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylesheetparser/plugin.js +148 -148
  362. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tab/plugin.js +367 -367
  363. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/dialogs/table.js +618 -602
  364. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/plugin.js +78 -78
  365. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tableresize/plugin.js +443 -443
  366. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +520 -525
  367. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/plugin.js +1185 -1194
  368. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.js +234 -234
  369. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/plugin.js +100 -99
  370. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/templates/default.js +94 -94
  371. data/vendor/assets/ckeditor/ckeditor/_source/plugins/toolbar/plugin.js +545 -545
  372. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +205 -205
  373. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/_translationstatus.txt +27 -0
  374. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/bg.js +15 -0
  375. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/cs.js +15 -0
  376. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/cy.js +15 -0
  377. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/da.js +15 -0
  378. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/de.js +15 -0
  379. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/el.js +15 -0
  380. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/en.js +15 -15
  381. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/eo.js +15 -0
  382. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/et.js +15 -0
  383. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/fa.js +15 -0
  384. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/fi.js +15 -0
  385. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/fr.js +15 -0
  386. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/he.js +15 -15
  387. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/hr.js +15 -0
  388. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/it.js +15 -0
  389. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/mk.js +15 -0
  390. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/nb.js +15 -0
  391. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/nl.js +15 -0
  392. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/no.js +15 -0
  393. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/pl.js +15 -0
  394. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/tr.js +15 -0
  395. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/ug.js +15 -0
  396. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/uk.js +15 -0
  397. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/vi.js +15 -0
  398. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/zh-cn.js +15 -0
  399. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/plugin.js +37 -37
  400. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +15 -15
  401. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/yui.js +71 -71
  402. data/vendor/assets/ckeditor/ckeditor/_source/plugins/undo/plugin.js +593 -580
  403. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +49 -49
  404. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +52 -52
  405. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.css +82 -82
  406. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.js +192 -192
  407. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/plugin.js +33 -33
  408. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wysiwygarea/plugin.js +1346 -1351
  409. data/vendor/assets/ckeditor/ckeditor/_source/plugins/xml/plugin.js +170 -170
  410. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/dialog.css +989 -943
  411. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/editor.css +25 -25
  412. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/elementspath.css +73 -73
  413. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/icons.css +366 -366
  414. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/mainui.css +206 -203
  415. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/menu.css +232 -232
  416. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/panel.css +217 -217
  417. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/presets.css +49 -49
  418. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/reset.css +85 -84
  419. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/richcombo.css +287 -287
  420. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/skin.js +236 -236
  421. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/templates.css +88 -88
  422. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/toolbar.css +408 -407
  423. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/dialog.css +891 -844
  424. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/editor.css +25 -25
  425. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/elementspath.css +74 -74
  426. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/icons.css +363 -363
  427. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/mainui.css +153 -153
  428. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/menu.css +229 -229
  429. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/panel.css +212 -212
  430. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/presets.css +49 -49
  431. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/reset.css +85 -84
  432. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/richcombo.css +309 -309
  433. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/skin.js +74 -74
  434. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/templates.css +87 -87
  435. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/toolbar.css +522 -522
  436. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/dialog.css +907 -861
  437. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/editor.css +25 -25
  438. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/elementspath.css +74 -74
  439. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/icons.css +363 -363
  440. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/mainui.css +162 -162
  441. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/menu.css +232 -232
  442. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/panel.css +212 -212
  443. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/presets.css +50 -50
  444. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/reset.css +85 -84
  445. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/richcombo.css +302 -302
  446. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/skin.js +70 -70
  447. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/templates.css +87 -87
  448. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/toolbar.css +465 -465
  449. data/vendor/assets/ckeditor/ckeditor/_source/themes/default/theme.js +407 -395
  450. data/vendor/assets/ckeditor/ckeditor/adapters/jquery.js +6 -6
  451. data/vendor/assets/ckeditor/ckeditor/ckeditor.asp +955 -955
  452. data/vendor/assets/ckeditor/ckeditor/ckeditor.js +134 -130
  453. data/vendor/assets/ckeditor/ckeditor/ckeditor.pack +211 -211
  454. data/vendor/assets/ckeditor/ckeditor/ckeditor.php +29 -29
  455. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic.js +8 -8
  456. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic_source.js +20 -20
  457. data/vendor/assets/ckeditor/ckeditor/ckeditor_php4.php +566 -566
  458. data/vendor/assets/ckeditor/ckeditor/ckeditor_php5.php +556 -556
  459. data/vendor/assets/ckeditor/ckeditor/ckeditor_source.js +14 -4
  460. data/vendor/assets/ckeditor/ckeditor/config.js +11 -11
  461. data/vendor/assets/ckeditor/ckeditor/contents.css +25 -25
  462. data/vendor/assets/ckeditor/ckeditor/lang/_languages.js +1 -1
  463. data/vendor/assets/ckeditor/ckeditor/lang/_translationstatus.txt +61 -59
  464. data/vendor/assets/ckeditor/ckeditor/lang/af.js +2 -2
  465. data/vendor/assets/ckeditor/ckeditor/lang/ar.js +2 -2
  466. data/vendor/assets/ckeditor/ckeditor/lang/bg.js +2 -2
  467. data/vendor/assets/ckeditor/ckeditor/lang/bn.js +2 -2
  468. data/vendor/assets/ckeditor/ckeditor/lang/bs.js +2 -2
  469. data/vendor/assets/ckeditor/ckeditor/lang/ca.js +2 -2
  470. data/vendor/assets/ckeditor/ckeditor/lang/cs.js +2 -2
  471. data/vendor/assets/ckeditor/ckeditor/lang/cy.js +2 -2
  472. data/vendor/assets/ckeditor/ckeditor/lang/da.js +2 -2
  473. data/vendor/assets/ckeditor/ckeditor/lang/de.js +2 -2
  474. data/vendor/assets/ckeditor/ckeditor/lang/el.js +2 -2
  475. data/vendor/assets/ckeditor/ckeditor/lang/en-au.js +2 -2
  476. data/vendor/assets/ckeditor/ckeditor/lang/en-ca.js +2 -2
  477. data/vendor/assets/ckeditor/ckeditor/lang/en-gb.js +2 -2
  478. data/vendor/assets/ckeditor/ckeditor/lang/en.js +2 -2
  479. data/vendor/assets/ckeditor/ckeditor/lang/eo.js +2 -2
  480. data/vendor/assets/ckeditor/ckeditor/lang/es.js +2 -2
  481. data/vendor/assets/ckeditor/ckeditor/lang/et.js +2 -2
  482. data/vendor/assets/ckeditor/ckeditor/lang/eu.js +2 -2
  483. data/vendor/assets/ckeditor/ckeditor/lang/fa.js +2 -2
  484. data/vendor/assets/ckeditor/ckeditor/lang/fi.js +2 -2
  485. data/vendor/assets/ckeditor/ckeditor/lang/fo.js +2 -2
  486. data/vendor/assets/ckeditor/ckeditor/lang/fr-ca.js +2 -2
  487. data/vendor/assets/ckeditor/ckeditor/lang/fr.js +2 -2
  488. data/vendor/assets/ckeditor/ckeditor/lang/gl.js +2 -2
  489. data/vendor/assets/ckeditor/ckeditor/lang/gu.js +2 -2
  490. data/vendor/assets/ckeditor/ckeditor/lang/he.js +2 -2
  491. data/vendor/assets/ckeditor/ckeditor/lang/hi.js +2 -2
  492. data/vendor/assets/ckeditor/ckeditor/lang/hr.js +2 -2
  493. data/vendor/assets/ckeditor/ckeditor/lang/hu.js +2 -2
  494. data/vendor/assets/ckeditor/ckeditor/lang/is.js +2 -2
  495. data/vendor/assets/ckeditor/ckeditor/lang/it.js +2 -2
  496. data/vendor/assets/ckeditor/ckeditor/lang/ja.js +2 -2
  497. data/vendor/assets/ckeditor/ckeditor/lang/ka.js +2 -2
  498. data/vendor/assets/ckeditor/ckeditor/lang/km.js +2 -2
  499. data/vendor/assets/ckeditor/ckeditor/lang/ko.js +2 -2
  500. data/vendor/assets/ckeditor/ckeditor/lang/lt.js +2 -2
  501. data/vendor/assets/ckeditor/ckeditor/lang/lv.js +2 -2
  502. data/vendor/assets/ckeditor/ckeditor/lang/mk.js +6 -0
  503. data/vendor/assets/ckeditor/ckeditor/lang/mn.js +2 -2
  504. data/vendor/assets/ckeditor/ckeditor/lang/ms.js +2 -2
  505. data/vendor/assets/ckeditor/ckeditor/lang/nb.js +2 -2
  506. data/vendor/assets/ckeditor/ckeditor/lang/nl.js +2 -2
  507. data/vendor/assets/ckeditor/ckeditor/lang/no.js +2 -2
  508. data/vendor/assets/ckeditor/ckeditor/lang/pl.js +2 -2
  509. data/vendor/assets/ckeditor/ckeditor/lang/pt-br.js +2 -2
  510. data/vendor/assets/ckeditor/ckeditor/lang/pt.js +2 -2
  511. data/vendor/assets/ckeditor/ckeditor/lang/ro.js +2 -2
  512. data/vendor/assets/ckeditor/ckeditor/lang/ru.js +2 -2
  513. data/vendor/assets/ckeditor/ckeditor/lang/sk.js +2 -2
  514. data/vendor/assets/ckeditor/ckeditor/lang/sl.js +2 -2
  515. data/vendor/assets/ckeditor/ckeditor/lang/sr-latn.js +2 -2
  516. data/vendor/assets/ckeditor/ckeditor/lang/sr.js +2 -2
  517. data/vendor/assets/ckeditor/ckeditor/lang/sv.js +2 -2
  518. data/vendor/assets/ckeditor/ckeditor/lang/th.js +2 -2
  519. data/vendor/assets/ckeditor/ckeditor/lang/tr.js +2 -2
  520. data/vendor/assets/ckeditor/ckeditor/lang/ug.js +6 -0
  521. data/vendor/assets/ckeditor/ckeditor/lang/uk.js +2 -2
  522. data/vendor/assets/ckeditor/ckeditor/lang/vi.js +2 -2
  523. data/vendor/assets/ckeditor/ckeditor/lang/zh-cn.js +2 -2
  524. data/vendor/assets/ckeditor/ckeditor/lang/zh.js +2 -2
  525. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +1 -1
  526. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/_translationstatus.txt +23 -0
  527. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/cs.js +6 -0
  528. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/cy.js +6 -0
  529. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/da.js +6 -0
  530. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/de.js +6 -0
  531. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/el.js +6 -0
  532. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/en.js +2 -2
  533. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/eo.js +6 -0
  534. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/fa.js +6 -0
  535. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/fi.js +6 -0
  536. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/fr.js +6 -0
  537. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/gu.js +6 -0
  538. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/he.js +2 -2
  539. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/it.js +6 -0
  540. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/mk.js +6 -0
  541. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/nb.js +6 -0
  542. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/nl.js +6 -0
  543. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/no.js +6 -0
  544. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/tr.js +6 -0
  545. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/ug.js +6 -0
  546. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/vi.js +6 -0
  547. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/zh-cn.js +6 -0
  548. data/vendor/assets/ckeditor/ckeditor/plugins/about/dialogs/about.js +1 -1
  549. data/vendor/assets/ckeditor/ckeditor/plugins/adobeair/plugin.js +1 -1
  550. data/vendor/assets/ckeditor/ckeditor/plugins/ajax/plugin.js +1 -1
  551. data/vendor/assets/ckeditor/ckeditor/plugins/autogrow/plugin.js +2 -2
  552. data/vendor/assets/ckeditor/ckeditor/plugins/bbcode/plugin.js +1 -1
  553. data/vendor/assets/ckeditor/ckeditor/plugins/clipboard/dialogs/paste.js +2 -2
  554. data/vendor/assets/ckeditor/ckeditor/plugins/colordialog/dialogs/colordialog.js +3 -3
  555. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/_translationstatus.txt +27 -0
  556. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/bg.js +6 -0
  557. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/cs.js +6 -0
  558. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/cy.js +6 -0
  559. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/da.js +6 -0
  560. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/de.js +6 -0
  561. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/el.js +6 -0
  562. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/en.js +1 -1
  563. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/eo.js +6 -0
  564. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/et.js +6 -0
  565. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/fa.js +6 -0
  566. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/fi.js +6 -0
  567. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/fr.js +6 -0
  568. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/gu.js +6 -0
  569. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/he.js +6 -0
  570. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/hr.js +6 -0
  571. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/it.js +6 -0
  572. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/nb.js +6 -0
  573. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/nl.js +6 -0
  574. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/no.js +6 -0
  575. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/pl.js +6 -0
  576. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/tr.js +6 -0
  577. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/ug.js +6 -0
  578. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/uk.js +6 -0
  579. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/vi.js +6 -0
  580. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/zh-cn.js +6 -0
  581. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/plugin.js +2 -2
  582. data/vendor/assets/ckeditor/ckeditor/plugins/dialog/dialogDefinition.js +1 -1
  583. data/vendor/assets/ckeditor/ckeditor/plugins/div/dialogs/div.js +1 -1
  584. data/vendor/assets/ckeditor/ckeditor/plugins/docprops/dialogs/docprops.js +3 -3
  585. data/vendor/assets/ckeditor/ckeditor/plugins/docprops/plugin.js +1 -1
  586. data/vendor/assets/ckeditor/ckeditor/plugins/find/dialogs/find.js +6 -6
  587. data/vendor/assets/ckeditor/ckeditor/plugins/flash/dialogs/flash.js +2 -2
  588. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/button.js +1 -1
  589. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/checkbox.js +1 -1
  590. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/form.js +1 -1
  591. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/hiddenfield.js +1 -1
  592. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/radio.js +1 -1
  593. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/select.js +1 -1
  594. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/textarea.js +2 -2
  595. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/textfield.js +1 -1
  596. data/vendor/assets/ckeditor/ckeditor/plugins/iframe/dialogs/iframe.js +1 -1
  597. data/vendor/assets/ckeditor/ckeditor/plugins/iframedialog/plugin.js +1 -1
  598. data/vendor/assets/ckeditor/ckeditor/plugins/image/dialogs/image.js +9 -9
  599. data/vendor/assets/ckeditor/ckeditor/plugins/link/dialogs/anchor.js +1 -1
  600. data/vendor/assets/ckeditor/ckeditor/plugins/link/dialogs/link.js +6 -6
  601. data/vendor/assets/ckeditor/ckeditor/plugins/liststyle/dialogs/liststyle.js +1 -1
  602. data/vendor/assets/ckeditor/ckeditor/plugins/pastefromword/filter/default.js +1 -1
  603. data/vendor/assets/ckeditor/ckeditor/plugins/pastetext/dialogs/pastetext.js +1 -1
  604. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/dialogs/placeholder.js +1 -1
  605. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/_translationstatus.txt +26 -0
  606. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/bg.js +6 -0
  607. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/cs.js +6 -0
  608. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/cy.js +6 -0
  609. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/da.js +6 -0
  610. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/de.js +6 -0
  611. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/el.js +6 -0
  612. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/en.js +1 -1
  613. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/eo.js +6 -0
  614. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/et.js +6 -0
  615. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/fa.js +6 -0
  616. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/fi.js +6 -0
  617. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/fr.js +6 -0
  618. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/he.js +1 -1
  619. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/hr.js +6 -0
  620. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/it.js +6 -0
  621. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/nb.js +6 -0
  622. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/nl.js +6 -0
  623. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/no.js +6 -0
  624. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/pl.js +6 -0
  625. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/tr.js +6 -0
  626. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/ug.js +6 -0
  627. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/uk.js +6 -0
  628. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/vi.js +6 -0
  629. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/zh-cn.js +6 -0
  630. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/plugin.js +2 -2
  631. data/vendor/assets/ckeditor/ckeditor/plugins/scayt/dialogs/options.js +1 -1
  632. data/vendor/assets/ckeditor/ckeditor/plugins/scayt/dialogs/toolbar.css +1 -1
  633. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js +1 -1
  634. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js +2 -2
  635. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/_translationstatus.txt +19 -0
  636. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/cs.js +6 -0
  637. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/cy.js +6 -0
  638. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/de.js +6 -0
  639. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/en.js +2 -2
  640. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/eo.js +6 -0
  641. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/et.js +6 -0
  642. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/fa.js +6 -0
  643. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/fi.js +6 -0
  644. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/fr.js +6 -0
  645. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/hr.js +6 -0
  646. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/it.js +6 -0
  647. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/nb.js +6 -0
  648. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/nl.js +6 -0
  649. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/no.js +6 -0
  650. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/tr.js +6 -0
  651. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/ug.js +6 -0
  652. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/zh-cn.js +6 -0
  653. data/vendor/assets/ckeditor/ckeditor/plugins/styles/styles/default.js +1 -1
  654. data/vendor/assets/ckeditor/ckeditor/plugins/stylesheetparser/plugin.js +1 -1
  655. data/vendor/assets/ckeditor/ckeditor/plugins/table/dialogs/table.js +5 -5
  656. data/vendor/assets/ckeditor/ckeditor/plugins/tableresize/plugin.js +1 -1
  657. data/vendor/assets/ckeditor/ckeditor/plugins/tabletools/dialogs/tableCell.js +3 -3
  658. data/vendor/assets/ckeditor/ckeditor/plugins/templates/dialogs/templates.js +1 -1
  659. data/vendor/assets/ckeditor/ckeditor/plugins/templates/templates/default.js +1 -1
  660. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/dialogs/uicolor.js +1 -1
  661. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/_translationstatus.txt +27 -0
  662. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/bg.js +6 -0
  663. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/cs.js +6 -0
  664. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/cy.js +6 -0
  665. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/da.js +6 -0
  666. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/de.js +6 -0
  667. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/el.js +6 -0
  668. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/en.js +1 -1
  669. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/eo.js +6 -0
  670. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/et.js +6 -0
  671. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/fa.js +6 -0
  672. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/fi.js +6 -0
  673. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/fr.js +6 -0
  674. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/he.js +1 -1
  675. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/hr.js +6 -0
  676. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/it.js +6 -0
  677. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/mk.js +6 -0
  678. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/nb.js +6 -0
  679. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/nl.js +6 -0
  680. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/no.js +6 -0
  681. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/pl.js +6 -0
  682. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/tr.js +6 -0
  683. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/ug.js +6 -0
  684. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/uk.js +6 -0
  685. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/vi.js +6 -0
  686. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/zh-cn.js +6 -0
  687. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/plugin.js +2 -2
  688. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/yui/assets/yui.css +1 -1
  689. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/yui/yui.js +1 -1
  690. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html +1 -1
  691. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +1 -1
  692. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css +1 -1
  693. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js +2 -2
  694. data/vendor/assets/ckeditor/ckeditor/plugins/xml/plugin.js +1 -1
  695. data/vendor/assets/ckeditor/ckeditor/skins/kama/dialog.css +2 -2
  696. data/vendor/assets/ckeditor/ckeditor/skins/kama/editor.css +4 -4
  697. data/vendor/assets/ckeditor/ckeditor/skins/kama/skin.js +1 -1
  698. data/vendor/assets/ckeditor/ckeditor/skins/kama/templates.css +1 -1
  699. data/vendor/assets/ckeditor/ckeditor/skins/office2003/dialog.css +2 -2
  700. data/vendor/assets/ckeditor/ckeditor/skins/office2003/editor.css +2 -2
  701. data/vendor/assets/ckeditor/ckeditor/skins/office2003/skin.js +1 -1
  702. data/vendor/assets/ckeditor/ckeditor/skins/office2003/templates.css +1 -1
  703. data/vendor/assets/ckeditor/ckeditor/skins/v2/dialog.css +2 -2
  704. data/vendor/assets/ckeditor/ckeditor/skins/v2/editor.css +2 -2
  705. data/vendor/assets/ckeditor/ckeditor/skins/v2/skin.js +1 -1
  706. data/vendor/assets/ckeditor/ckeditor/skins/v2/templates.css +1 -1
  707. data/vendor/assets/ckeditor/ckeditor/themes/default/theme.js +8 -8
  708. metadata +225 -3
@@ -1,223 +1,223 @@
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.dialog.add( 'paste', function( editor )
7
- {
8
- var lang = editor.lang.clipboard;
9
- var isCustomDomain = CKEDITOR.env.isCustomDomain();
10
-
11
- function onPasteFrameLoad( win )
12
- {
13
- var doc = new CKEDITOR.dom.document( win.document ),
14
- docElement = doc.$;
15
-
16
- var script = doc.getById( 'cke_actscrpt' );
17
- script && script.remove();
18
-
19
- CKEDITOR.env.ie ?
20
- docElement.body.contentEditable = "true" :
21
- docElement.designMode = "on";
22
-
23
- // IE before version 8 will leave cursor blinking inside the document after
24
- // editor blurred unless we clean up the selection. (#4716)
25
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
26
- {
27
- doc.getWindow().on( 'blur', function()
28
- {
29
- docElement.selection.empty();
30
- } );
31
- }
32
-
33
- doc.on( "keydown", function( e )
34
- {
35
- var domEvent = e.data,
36
- key = domEvent.getKeystroke(),
37
- processed;
38
-
39
- switch( key )
40
- {
41
- case 27 :
42
- this.hide();
43
- processed = 1;
44
- break;
45
-
46
- case 9 :
47
- case CKEDITOR.SHIFT + 9 :
48
- this.changeFocus( true );
49
- processed = 1;
50
- }
51
-
52
- processed && domEvent.preventDefault();
53
- }, this );
54
-
55
- editor.fire( 'ariaWidget', new CKEDITOR.dom.element( win.frameElement ) );
56
- }
57
-
58
- return {
59
- title : lang.title,
60
-
61
- minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks ? 370 : 350,
62
- minHeight : CKEDITOR.env.quirks ? 250 : 245,
63
- onShow : function()
64
- {
65
- // FIREFOX BUG: Force the browser to render the dialog to make the to-be-
66
- // inserted iframe editable. (#3366)
67
- this.parts.dialog.$.offsetHeight;
68
-
69
- this.setupContent();
70
- },
71
-
72
- onHide : function()
73
- {
74
- if ( CKEDITOR.env.ie )
75
- this.getParentEditor().document.getBody().$.contentEditable = 'true';
76
- },
77
-
78
- onLoad : function()
79
- {
80
- if ( ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) && editor.lang.dir == 'rtl' )
81
- this.parts.contents.setStyle( 'overflow', 'hidden' );
82
- },
83
-
84
- onOk : function()
85
- {
86
- this.commitContent();
87
- },
88
-
89
- contents : [
90
- {
91
- id : 'general',
92
- label : editor.lang.common.generalTab,
93
- elements : [
94
- {
95
- type : 'html',
96
- id : 'securityMsg',
97
- html : '<div style="white-space:normal;width:340px;">' + lang.securityMsg + '</div>'
98
- },
99
- {
100
- type : 'html',
101
- id : 'pasteMsg',
102
- html : '<div style="white-space:normal;width:340px;">'+lang.pasteMsg +'</div>'
103
- },
104
- {
105
- type : 'html',
106
- id : 'editing_area',
107
- style : 'width: 100%; height: 100%;',
108
- html : '',
109
- focus : function()
110
- {
111
- var win = this.getInputElement().$.contentWindow;
112
-
113
- // #3291 : JAWS needs the 500ms delay to detect that the editor iframe
114
- // iframe is no longer editable. So that it will put the focus into the
115
- // Paste from Word dialog's editable area instead.
116
- setTimeout( function()
117
- {
118
- win.focus();
119
- }, 500 );
120
- },
121
- setup : function()
122
- {
123
- var dialog = this.getDialog();
124
- var htmlToLoad =
125
- '<html dir="' + editor.config.contentsLangDirection + '"' +
126
- ' lang="' + ( editor.config.contentsLanguage || editor.langCode ) + '">' +
127
- '<head><style>body { margin: 3px; height: 95%; } </style></head><body>' +
128
- '<script id="cke_actscrpt" type="text/javascript">' +
129
- 'window.parent.CKEDITOR.tools.callFunction( ' + CKEDITOR.tools.addFunction( onPasteFrameLoad, dialog ) + ', this );' +
130
- '</script></body>' +
131
- '</html>';
132
-
133
- var src =
134
- CKEDITOR.env.air ?
135
- 'javascript:void(0)' :
136
- isCustomDomain ?
137
- 'javascript:void((function(){' +
138
- 'document.open();' +
139
- 'document.domain=\'' + document.domain + '\';' +
140
- 'document.close();' +
141
- '})())"'
142
- :
143
- '';
144
-
145
- var iframe = CKEDITOR.dom.element.createFromHtml(
146
- '<iframe' +
147
- ' class="cke_pasteframe"' +
148
- ' frameborder="0" ' +
149
- ' allowTransparency="true"' +
150
- ' src="' + src + '"' +
151
- ' role="region"' +
152
- ' aria-label="' + lang.pasteArea + '"' +
153
- ' aria-describedby="' + dialog.getContentElement( 'general', 'pasteMsg' ).domId + '"' +
154
- ' aria-multiple="true"' +
155
- '></iframe>' );
156
-
157
- iframe.on( 'load', function( e )
158
- {
159
- e.removeListener();
160
-
161
- var doc = iframe.getFrameDocument();
162
- doc.write( htmlToLoad );
163
-
164
- if ( CKEDITOR.env.air )
165
- onPasteFrameLoad.call( this, doc.getWindow().$ );
166
- }, dialog );
167
-
168
- iframe.setCustomData( 'dialog', dialog );
169
-
170
- var container = this.getElement();
171
- container.setHtml( '' );
172
- container.append( iframe );
173
-
174
- // IE need a redirect on focus to make
175
- // the cursor blinking inside iframe. (#5461)
176
- if ( CKEDITOR.env.ie )
177
- {
178
- var focusGrabber = CKEDITOR.dom.element.createFromHtml( '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' );
179
- focusGrabber.on( 'focus', function()
180
- {
181
- iframe.$.contentWindow.focus();
182
- });
183
- container.append( focusGrabber );
184
-
185
- // Override focus handler on field.
186
- this.focus = function()
187
- {
188
- focusGrabber.focus();
189
- this.fire( 'focus' );
190
- };
191
- }
192
-
193
- this.getInputElement = function(){ return iframe; };
194
-
195
- // Force container to scale in IE.
196
- if ( CKEDITOR.env.ie )
197
- {
198
- container.setStyle( 'display', 'block' );
199
- container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' );
200
- }
201
- },
202
- commit : function( data )
203
- {
204
- var container = this.getElement(),
205
- editor = this.getDialog().getParentEditor(),
206
- body = this.getInputElement().getFrameDocument().getBody(),
207
- bogus = body.getBogus(),
208
- html;
209
- bogus && bogus.remove();
210
-
211
- // Saving the contents so changes until paste is complete will not take place (#7500)
212
- html = body.getHtml();
213
-
214
- setTimeout( function(){
215
- editor.fire( 'paste', { 'html' : html } );
216
- }, 0 );
217
- }
218
- }
219
- ]
220
- }
221
- ]
222
- };
223
- });
1
+ /*
2
+ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ CKEDITOR.dialog.add( 'paste', function( editor )
7
+ {
8
+ var lang = editor.lang.clipboard;
9
+ var isCustomDomain = CKEDITOR.env.isCustomDomain();
10
+
11
+ function onPasteFrameLoad( win )
12
+ {
13
+ var doc = new CKEDITOR.dom.document( win.document ),
14
+ docElement = doc.$;
15
+
16
+ var script = doc.getById( 'cke_actscrpt' );
17
+ script && script.remove();
18
+
19
+ CKEDITOR.env.ie ?
20
+ docElement.body.contentEditable = "true" :
21
+ docElement.designMode = "on";
22
+
23
+ // IE before version 8 will leave cursor blinking inside the document after
24
+ // editor blurred unless we clean up the selection. (#4716)
25
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
26
+ {
27
+ doc.getWindow().on( 'blur', function()
28
+ {
29
+ docElement.selection.empty();
30
+ } );
31
+ }
32
+
33
+ doc.on( "keydown", function( e )
34
+ {
35
+ var domEvent = e.data,
36
+ key = domEvent.getKeystroke(),
37
+ processed;
38
+
39
+ switch( key )
40
+ {
41
+ case 27 :
42
+ this.hide();
43
+ processed = 1;
44
+ break;
45
+
46
+ case 9 :
47
+ case CKEDITOR.SHIFT + 9 :
48
+ this.changeFocus( 1 );
49
+ processed = 1;
50
+ }
51
+
52
+ processed && domEvent.preventDefault();
53
+ }, this );
54
+
55
+ editor.fire( 'ariaWidget', new CKEDITOR.dom.element( win.frameElement ) );
56
+ }
57
+
58
+ return {
59
+ title : lang.title,
60
+
61
+ minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks ? 370 : 350,
62
+ minHeight : CKEDITOR.env.quirks ? 250 : 245,
63
+ onShow : function()
64
+ {
65
+ // FIREFOX BUG: Force the browser to render the dialog to make the to-be-
66
+ // inserted iframe editable. (#3366)
67
+ this.parts.dialog.$.offsetHeight;
68
+
69
+ this.setupContent();
70
+ },
71
+
72
+ onHide : function()
73
+ {
74
+ if ( CKEDITOR.env.ie )
75
+ this.getParentEditor().document.getBody().$.contentEditable = 'true';
76
+ },
77
+
78
+ onLoad : function()
79
+ {
80
+ if ( ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) && editor.lang.dir == 'rtl' )
81
+ this.parts.contents.setStyle( 'overflow', 'hidden' );
82
+ },
83
+
84
+ onOk : function()
85
+ {
86
+ this.commitContent();
87
+ },
88
+
89
+ contents : [
90
+ {
91
+ id : 'general',
92
+ label : editor.lang.common.generalTab,
93
+ elements : [
94
+ {
95
+ type : 'html',
96
+ id : 'securityMsg',
97
+ html : '<div style="white-space:normal;width:340px;">' + lang.securityMsg + '</div>'
98
+ },
99
+ {
100
+ type : 'html',
101
+ id : 'pasteMsg',
102
+ html : '<div style="white-space:normal;width:340px;">'+lang.pasteMsg +'</div>'
103
+ },
104
+ {
105
+ type : 'html',
106
+ id : 'editing_area',
107
+ style : 'width: 100%; height: 100%;',
108
+ html : '',
109
+ focus : function()
110
+ {
111
+ var win = this.getInputElement().$.contentWindow;
112
+
113
+ // #3291 : JAWS needs the 500ms delay to detect that the editor iframe
114
+ // iframe is no longer editable. So that it will put the focus into the
115
+ // Paste from Word dialog's editable area instead.
116
+ setTimeout( function()
117
+ {
118
+ win.focus();
119
+ }, 500 );
120
+ },
121
+ setup : function()
122
+ {
123
+ var dialog = this.getDialog();
124
+ var htmlToLoad =
125
+ '<html dir="' + editor.config.contentsLangDirection + '"' +
126
+ ' lang="' + ( editor.config.contentsLanguage || editor.langCode ) + '">' +
127
+ '<head><style>body { margin: 3px; height: 95%; } </style></head><body>' +
128
+ '<script id="cke_actscrpt" type="text/javascript">' +
129
+ 'window.parent.CKEDITOR.tools.callFunction( ' + CKEDITOR.tools.addFunction( onPasteFrameLoad, dialog ) + ', this );' +
130
+ '</script></body>' +
131
+ '</html>';
132
+
133
+ var src =
134
+ CKEDITOR.env.air ?
135
+ 'javascript:void(0)' :
136
+ isCustomDomain ?
137
+ 'javascript:void((function(){' +
138
+ 'document.open();' +
139
+ 'document.domain=\'' + document.domain + '\';' +
140
+ 'document.close();' +
141
+ '})())"'
142
+ :
143
+ '';
144
+
145
+ var iframe = CKEDITOR.dom.element.createFromHtml(
146
+ '<iframe' +
147
+ ' class="cke_pasteframe"' +
148
+ ' frameborder="0" ' +
149
+ ' allowTransparency="true"' +
150
+ ' src="' + src + '"' +
151
+ ' role="region"' +
152
+ ' aria-label="' + lang.pasteArea + '"' +
153
+ ' aria-describedby="' + dialog.getContentElement( 'general', 'pasteMsg' ).domId + '"' +
154
+ ' aria-multiple="true"' +
155
+ '></iframe>' );
156
+
157
+ iframe.on( 'load', function( e )
158
+ {
159
+ e.removeListener();
160
+
161
+ var doc = iframe.getFrameDocument();
162
+ doc.write( htmlToLoad );
163
+
164
+ if ( CKEDITOR.env.air )
165
+ onPasteFrameLoad.call( this, doc.getWindow().$ );
166
+ }, dialog );
167
+
168
+ iframe.setCustomData( 'dialog', dialog );
169
+
170
+ var container = this.getElement();
171
+ container.setHtml( '' );
172
+ container.append( iframe );
173
+
174
+ // IE need a redirect on focus to make
175
+ // the cursor blinking inside iframe. (#5461)
176
+ if ( CKEDITOR.env.ie )
177
+ {
178
+ var focusGrabber = CKEDITOR.dom.element.createFromHtml( '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' );
179
+ focusGrabber.on( 'focus', function()
180
+ {
181
+ iframe.$.contentWindow.focus();
182
+ });
183
+ container.append( focusGrabber );
184
+
185
+ // Override focus handler on field.
186
+ this.focus = function()
187
+ {
188
+ focusGrabber.focus();
189
+ this.fire( 'focus' );
190
+ };
191
+ }
192
+
193
+ this.getInputElement = function(){ return iframe; };
194
+
195
+ // Force container to scale in IE.
196
+ if ( CKEDITOR.env.ie )
197
+ {
198
+ container.setStyle( 'display', 'block' );
199
+ container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' );
200
+ }
201
+ },
202
+ commit : function( data )
203
+ {
204
+ var container = this.getElement(),
205
+ editor = this.getDialog().getParentEditor(),
206
+ body = this.getInputElement().getFrameDocument().getBody(),
207
+ bogus = body.getBogus(),
208
+ html;
209
+ bogus && bogus.remove();
210
+
211
+ // Saving the contents so changes until paste is complete will not take place (#7500)
212
+ html = body.getHtml();
213
+
214
+ setTimeout( function(){
215
+ editor.fire( 'paste', { 'html' : html } );
216
+ }, 0 );
217
+ }
218
+ }
219
+ ]
220
+ }
221
+ ]
222
+ };
223
+ });
@@ -1,453 +1,479 @@
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 Clipboard support
8
- */
9
-
10
- (function()
11
- {
12
- // Tries to execute any of the paste, cut or copy commands in IE. Returns a
13
- // boolean indicating that the operation succeeded.
14
- var execIECommand = function( editor, command )
15
- {
16
- var doc = editor.document,
17
- body = doc.getBody();
18
-
19
- var enabled = 0;
20
- var onExec = function()
21
- {
22
- enabled = 1;
23
- };
24
-
25
- // The following seems to be the only reliable way to detect that
26
- // clipboard commands are enabled in IE. It will fire the
27
- // onpaste/oncut/oncopy events only if the security settings allowed
28
- // the command to execute.
29
- body.on( command, onExec );
30
-
31
- // IE6/7: document.execCommand has problem to paste into positioned element.
32
- ( CKEDITOR.env.version > 7 ? doc.$ : doc.$.selection.createRange() ) [ 'execCommand' ]( command );
33
-
34
- body.removeListener( command, onExec );
35
-
36
- return enabled;
37
- };
38
-
39
- // Attempts to execute the Cut and Copy operations.
40
- var tryToCutCopy =
41
- CKEDITOR.env.ie ?
42
- function( editor, type )
43
- {
44
- return execIECommand( editor, type );
45
- }
46
- : // !IE.
47
- function( editor, type )
48
- {
49
- try
50
- {
51
- // Other browsers throw an error if the command is disabled.
52
- return editor.document.$.execCommand( type, false, null );
53
- }
54
- catch( e )
55
- {
56
- return false;
57
- }
58
- };
59
-
60
- // A class that represents one of the cut or copy commands.
61
- var cutCopyCmd = function( type )
62
- {
63
- this.type = type;
64
- this.canUndo = this.type == 'cut'; // We can't undo copy to clipboard.
65
- this.startDisabled = true;
66
- };
67
-
68
- cutCopyCmd.prototype =
69
- {
70
- exec : function( editor, data )
71
- {
72
- this.type == 'cut' && fixCut( editor );
73
-
74
- var success = tryToCutCopy( editor, this.type );
75
-
76
- if ( !success )
77
- alert( editor.lang.clipboard[ this.type + 'Error' ] ); // Show cutError or copyError.
78
-
79
- return success;
80
- }
81
- };
82
-
83
- // Paste command.
84
- var pasteCmd =
85
- {
86
- canUndo : false,
87
-
88
- exec :
89
- CKEDITOR.env.ie ?
90
- function( editor )
91
- {
92
- // Prevent IE from pasting at the begining of the document.
93
- editor.focus();
94
-
95
- if ( !editor.document.getBody().fire( 'beforepaste' )
96
- && !execIECommand( editor, 'paste' ) )
97
- {
98
- editor.fire( 'pasteDialog' );
99
- return false;
100
- }
101
- }
102
- :
103
- function( editor )
104
- {
105
- try
106
- {
107
- if ( !editor.document.getBody().fire( 'beforepaste' )
108
- && !editor.document.$.execCommand( 'Paste', false, null ) )
109
- {
110
- throw 0;
111
- }
112
- }
113
- catch ( e )
114
- {
115
- setTimeout( function()
116
- {
117
- editor.fire( 'pasteDialog' );
118
- }, 0 );
119
- return false;
120
- }
121
- }
122
- };
123
-
124
- // Listens for some clipboard related keystrokes, so they get customized.
125
- var onKey = function( event )
126
- {
127
- if ( this.mode != 'wysiwyg' )
128
- return;
129
-
130
- switch ( event.data.keyCode )
131
- {
132
- // Paste
133
- case CKEDITOR.CTRL + 86 : // CTRL+V
134
- case CKEDITOR.SHIFT + 45 : // SHIFT+INS
135
-
136
- var body = this.document.getBody();
137
-
138
- // Simulate 'beforepaste' event for all none-IEs.
139
- if ( !CKEDITOR.env.ie && body.fire( 'beforepaste' ) )
140
- event.cancel();
141
- // Simulate 'paste' event for Opera/Firefox2.
142
- else if ( CKEDITOR.env.opera
143
- || CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
144
- body.fire( 'paste' );
145
- return;
146
-
147
- // Cut
148
- case CKEDITOR.CTRL + 88 : // CTRL+X
149
- case CKEDITOR.SHIFT + 46 : // SHIFT+DEL
150
-
151
- // Save Undo snapshot.
152
- var editor = this;
153
- this.fire( 'saveSnapshot' ); // Save before paste
154
- setTimeout( function()
155
- {
156
- editor.fire( 'saveSnapshot' ); // Save after paste
157
- }, 0 );
158
- }
159
- };
160
-
161
- function cancel( evt ) { evt.cancel(); }
162
-
163
- // Allow to peek clipboard content by redirecting the
164
- // pasting content into a temporary bin and grab the content of it.
165
- function getClipboardData( evt, mode, callback )
166
- {
167
- var doc = this.document;
168
-
169
- // Avoid recursions on 'paste' event or consequent paste too fast. (#5730)
170
- if ( doc.getById( 'cke_pastebin' ) )
171
- return;
172
-
173
- // If the browser supports it, get the data directly
174
- if ( mode == 'text' && evt.data && evt.data.$.clipboardData )
175
- {
176
- // evt.data.$.clipboardData.types contains all the flavours in Mac's Safari, but not on windows.
177
- var plain = evt.data.$.clipboardData.getData( 'text/plain' );
178
- if ( plain )
179
- {
180
- evt.data.preventDefault();
181
- callback( plain );
182
- return;
183
- }
184
- }
185
-
186
- var sel = this.getSelection(),
187
- range = new CKEDITOR.dom.range( doc );
188
-
189
- // Create container to paste into
190
- var pastebin = new CKEDITOR.dom.element( mode == 'text' ? 'textarea' : CKEDITOR.env.webkit ? 'body' : 'div', doc );
191
- pastebin.setAttribute( 'id', 'cke_pastebin' );
192
- // Safari requires a filler node inside the div to have the content pasted into it. (#4882)
193
- CKEDITOR.env.webkit && pastebin.append( doc.createText( '\xa0' ) );
194
- doc.getBody().append( pastebin );
195
-
196
- pastebin.setStyles(
197
- {
198
- position : 'absolute',
199
- // Position the bin exactly at the position of the selected element
200
- // to avoid any subsequent document scroll.
201
- top : sel.getStartElement().getDocumentPosition().y + 'px',
202
- width : '1px',
203
- height : '1px',
204
- overflow : 'hidden'
205
- });
206
-
207
- // It's definitely a better user experience if we make the paste-bin pretty unnoticed
208
- // by pulling it off the screen.
209
- pastebin.setStyle( this.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-1000px' );
210
-
211
- var bms = sel.createBookmarks();
212
-
213
- this.on( 'selectionChange', cancel, null, null, 0 );
214
-
215
- // Turn off design mode temporarily before give focus to the paste bin.
216
- if ( mode == 'text' )
217
- pastebin.$.focus();
218
- else
219
- {
220
- range.setStartAt( pastebin, CKEDITOR.POSITION_AFTER_START );
221
- range.setEndAt( pastebin, CKEDITOR.POSITION_BEFORE_END );
222
- range.select( true );
223
- }
224
-
225
- var editor = this;
226
- // Wait a while and grab the pasted contents
227
- window.setTimeout( function()
228
- {
229
- mode == 'text' && CKEDITOR.env.gecko && editor.focusGrabber.focus();
230
- pastebin.remove();
231
- editor.removeListener( 'selectionChange', cancel );
232
-
233
- // Grab the HTML contents.
234
- // We need to look for a apple style wrapper on webkit it also adds
235
- // a div wrapper if you copy/paste the body of the editor.
236
- // Remove hidden div and restore selection.
237
- var bogusSpan;
238
- pastebin = ( CKEDITOR.env.webkit
239
- && ( bogusSpan = pastebin.getFirst() )
240
- && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) ?
241
- bogusSpan : pastebin );
242
-
243
- sel.selectBookmarks( bms );
244
- callback( pastebin[ 'get' + ( mode == 'text' ? 'Value' : 'Html' ) ]() );
245
- }, 0 );
246
- }
247
-
248
- // Cutting off control type element in IE standards breaks the selection entirely. (#4881)
249
- function fixCut( editor )
250
- {
251
- if ( !CKEDITOR.env.ie || CKEDITOR.env.quirks )
252
- return;
253
-
254
- var sel = editor.getSelection();
255
- var control;
256
- if( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) )
257
- {
258
- var range = sel.getRanges()[ 0 ];
259
- var dummy = editor.document.createText( '' );
260
- dummy.insertBefore( control );
261
- range.setStartBefore( dummy );
262
- range.setEndAfter( control );
263
- sel.selectRanges( [ range ] );
264
-
265
- // Clear up the fix if the paste wasn't succeeded.
266
- setTimeout( function()
267
- {
268
- // Element still online?
269
- if ( control.getParent() )
270
- {
271
- dummy.remove();
272
- sel.selectElement( control );
273
- }
274
- }, 0 );
275
- }
276
- }
277
-
278
- var depressBeforeEvent;
279
- function stateFromNamedCommand( command, editor )
280
- {
281
- // IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)',
282
- // guard to distinguish from the ordinary sources( either
283
- // keyboard paste or execCommand ) (#4874).
284
- CKEDITOR.env.ie && ( depressBeforeEvent = 1 );
285
-
286
- var retval = CKEDITOR.TRISTATE_OFF;
287
- try { retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED; }catch( er ){}
288
-
289
- depressBeforeEvent = 0;
290
- return retval;
291
- }
292
-
293
- var inReadOnly;
294
- function setToolbarStates()
295
- {
296
- if ( this.mode != 'wysiwyg' )
297
- return;
298
-
299
- this.getCommand( 'cut' ).setState( inReadOnly ? CKEDITOR.TRISTATE_DISABLED : stateFromNamedCommand( 'Cut', this ) );
300
- this.getCommand( 'copy' ).setState( stateFromNamedCommand( 'Copy', this ) );
301
- var pasteState = inReadOnly ? CKEDITOR.TRISTATE_DISABLED :
302
- CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', this );
303
- this.fire( 'pasteState', pasteState );
304
- }
305
-
306
- // Register the plugin.
307
- CKEDITOR.plugins.add( 'clipboard',
308
- {
309
- requires : [ 'dialog', 'htmldataprocessor' ],
310
- init : function( editor )
311
- {
312
- // Inserts processed data into the editor at the end of the
313
- // events chain.
314
- editor.on( 'paste', function( evt )
315
- {
316
- var data = evt.data;
317
- if ( data[ 'html' ] )
318
- editor.insertHtml( data[ 'html' ] );
319
- else if ( data[ 'text' ] )
320
- editor.insertText( data[ 'text' ] );
321
-
322
- setTimeout( function () { editor.fire( 'afterPaste' ); }, 0 );
323
-
324
- }, null, null, 1000 );
325
-
326
- editor.on( 'pasteDialog', function( evt )
327
- {
328
- setTimeout( function()
329
- {
330
- // Open default paste dialog.
331
- editor.openDialog( 'paste' );
332
- }, 0 );
333
- });
334
-
335
- editor.on( 'pasteState', function( evt )
336
- {
337
- editor.getCommand( 'paste' ).setState( evt.data );
338
- });
339
-
340
- function addButtonCommand( buttonName, commandName, command, ctxMenuOrder )
341
- {
342
- var lang = editor.lang[ commandName ];
343
-
344
- editor.addCommand( commandName, command );
345
- editor.ui.addButton( buttonName,
346
- {
347
- label : lang,
348
- command : commandName
349
- });
350
-
351
- // If the "menu" plugin is loaded, register the menu item.
352
- if ( editor.addMenuItems )
353
- {
354
- editor.addMenuItem( commandName,
355
- {
356
- label : lang,
357
- command : commandName,
358
- group : 'clipboard',
359
- order : ctxMenuOrder
360
- });
361
- }
362
- }
363
-
364
- addButtonCommand( 'Cut', 'cut', new cutCopyCmd( 'cut' ), 1 );
365
- addButtonCommand( 'Copy', 'copy', new cutCopyCmd( 'copy' ), 4 );
366
- addButtonCommand( 'Paste', 'paste', pasteCmd, 8 );
367
-
368
- CKEDITOR.dialog.add( 'paste', CKEDITOR.getUrl( this.path + 'dialogs/paste.js' ) );
369
-
370
- editor.on( 'key', onKey, editor );
371
-
372
- // We'll be catching all pasted content in one line, regardless of whether the
373
- // it's introduced by a document command execution (e.g. toolbar buttons) or
374
- // user paste behaviors. (e.g. Ctrl-V)
375
- editor.on( 'contentDom', function()
376
- {
377
- var body = editor.document.getBody();
378
- body.on( CKEDITOR.env.webkit ? 'paste' : 'beforepaste', function( evt )
379
- {
380
- if ( depressBeforeEvent )
381
- return;
382
-
383
- // Fire 'beforePaste' event so clipboard flavor get customized
384
- // by other plugins.
385
- var eventData = { mode : 'html' };
386
- editor.fire( 'beforePaste', eventData );
387
-
388
- getClipboardData.call( editor, evt, eventData.mode, function ( data )
389
- {
390
- // The very last guard to make sure the
391
- // paste has successfully happened.
392
- if ( !( data = CKEDITOR.tools.trim( data.replace( /<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,'' ) ) ) )
393
- return;
394
-
395
- var dataTransfer = {};
396
- dataTransfer[ eventData.mode ] = data;
397
- editor.fire( 'paste', dataTransfer );
398
- } );
399
- });
400
-
401
- // Dismiss the (wrong) 'beforepaste' event fired on context menu open. (#7953)
402
- body.on( 'contextmenu', function()
403
- {
404
- depressBeforeEvent = 1;
405
- setTimeout( function() { depressBeforeEvent = 0; }, 10 );
406
- });
407
-
408
- body.on( 'beforecut', function() { !depressBeforeEvent && fixCut( editor ); } );
409
-
410
- body.on( 'mouseup', function(){ setTimeout( function(){ setToolbarStates.call( editor ); }, 0 ); }, editor );
411
- body.on( 'keyup', setToolbarStates, editor );
412
- });
413
-
414
- // For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that.
415
- editor.on( 'selectionChange', function( evt )
416
- {
417
- inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly();
418
- setToolbarStates.call( editor );
419
- });
420
-
421
- // If the "contextmenu" plugin is loaded, register the listeners.
422
- if ( editor.contextMenu )
423
- {
424
- editor.contextMenu.addListener( function( element, selection )
425
- {
426
- var readOnly = selection.getRanges()[ 0 ].checkReadOnly();
427
- return {
428
- cut : !readOnly && stateFromNamedCommand( 'Cut', editor ),
429
- copy : stateFromNamedCommand( 'Copy', editor ),
430
- paste : !readOnly && ( CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', editor ) )
431
- };
432
- });
433
- }
434
- }
435
- });
436
- })();
437
-
438
- /**
439
- * Fired when a clipboard operation is about to be taken into the editor.
440
- * Listeners can manipulate the data to be pasted before having it effectively
441
- * inserted into the document.
442
- * @name CKEDITOR.editor#paste
443
- * @since 3.1
444
- * @event
445
- * @param {String} [data.html] The HTML data to be pasted. If not available, e.data.text will be defined.
446
- * @param {String} [data.text] The plain text data to be pasted, available when plain text operations are to used. If not available, e.data.html will be defined.
447
- */
448
-
449
- /**
450
- * Internal event to open the Paste dialog
451
- * @name CKEDITOR.editor#pasteDialog
452
- * @event
453
- */
1
+ /*
2
+ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @file Clipboard support
8
+ */
9
+
10
+ (function()
11
+ {
12
+ // Tries to execute any of the paste, cut or copy commands in IE. Returns a
13
+ // boolean indicating that the operation succeeded.
14
+ var execIECommand = function( editor, command )
15
+ {
16
+ var doc = editor.document,
17
+ body = doc.getBody();
18
+
19
+ var enabled = false;
20
+ var onExec = function()
21
+ {
22
+ enabled = true;
23
+ };
24
+
25
+ // The following seems to be the only reliable way to detect that
26
+ // clipboard commands are enabled in IE. It will fire the
27
+ // onpaste/oncut/oncopy events only if the security settings allowed
28
+ // the command to execute.
29
+ body.on( command, onExec );
30
+
31
+ // IE6/7: document.execCommand has problem to paste into positioned element.
32
+ ( CKEDITOR.env.version > 7 ? doc.$ : doc.$.selection.createRange() ) [ 'execCommand' ]( command );
33
+
34
+ body.removeListener( command, onExec );
35
+
36
+ return enabled;
37
+ };
38
+
39
+ // Attempts to execute the Cut and Copy operations.
40
+ var tryToCutCopy =
41
+ CKEDITOR.env.ie ?
42
+ function( editor, type )
43
+ {
44
+ return execIECommand( editor, type );
45
+ }
46
+ : // !IE.
47
+ function( editor, type )
48
+ {
49
+ try
50
+ {
51
+ // Other browsers throw an error if the command is disabled.
52
+ return editor.document.$.execCommand( type, false, null );
53
+ }
54
+ catch( e )
55
+ {
56
+ return false;
57
+ }
58
+ };
59
+
60
+ // A class that represents one of the cut or copy commands.
61
+ var cutCopyCmd = function( type )
62
+ {
63
+ this.type = type;
64
+ this.canUndo = this.type == 'cut'; // We can't undo copy to clipboard.
65
+ this.startDisabled = true;
66
+ };
67
+
68
+ cutCopyCmd.prototype =
69
+ {
70
+ exec : function( editor, data )
71
+ {
72
+ this.type == 'cut' && fixCut( editor );
73
+
74
+ var success = tryToCutCopy( editor, this.type );
75
+
76
+ if ( !success )
77
+ alert( editor.lang.clipboard[ this.type + 'Error' ] ); // Show cutError or copyError.
78
+
79
+ return success;
80
+ }
81
+ };
82
+
83
+ // Paste command.
84
+ var pasteCmd =
85
+ {
86
+ canUndo : false,
87
+
88
+ exec :
89
+ CKEDITOR.env.ie ?
90
+ function( editor )
91
+ {
92
+ // Prevent IE from pasting at the begining of the document.
93
+ editor.focus();
94
+
95
+ if ( !editor.document.getBody().fire( 'beforepaste' )
96
+ && !execIECommand( editor, 'paste' ) )
97
+ {
98
+ editor.fire( 'pasteDialog' );
99
+ return false;
100
+ }
101
+ }
102
+ :
103
+ function( editor )
104
+ {
105
+ try
106
+ {
107
+ if ( !editor.document.getBody().fire( 'beforepaste' )
108
+ && !editor.document.$.execCommand( 'Paste', false, null ) )
109
+ {
110
+ throw 0;
111
+ }
112
+ }
113
+ catch ( e )
114
+ {
115
+ setTimeout( function()
116
+ {
117
+ editor.fire( 'pasteDialog' );
118
+ }, 0 );
119
+ return false;
120
+ }
121
+ }
122
+ };
123
+
124
+ // Listens for some clipboard related keystrokes, so they get customized.
125
+ var onKey = function( event )
126
+ {
127
+ if ( this.mode != 'wysiwyg' )
128
+ return;
129
+
130
+ switch ( event.data.keyCode )
131
+ {
132
+ // Paste
133
+ case CKEDITOR.CTRL + 86 : // CTRL+V
134
+ case CKEDITOR.SHIFT + 45 : // SHIFT+INS
135
+
136
+ var body = this.document.getBody();
137
+
138
+ // Simulate 'paste' event for Opera/Firefox2.
139
+ if ( CKEDITOR.env.opera
140
+ || CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
141
+ body.fire( 'paste' );
142
+ return;
143
+
144
+ // Cut
145
+ case CKEDITOR.CTRL + 88 : // CTRL+X
146
+ case CKEDITOR.SHIFT + 46 : // SHIFT+DEL
147
+
148
+ // Save Undo snapshot.
149
+ var editor = this;
150
+ this.fire( 'saveSnapshot' ); // Save before paste
151
+ setTimeout( function()
152
+ {
153
+ editor.fire( 'saveSnapshot' ); // Save after paste
154
+ }, 0 );
155
+ }
156
+ };
157
+
158
+ function cancel( evt ) { evt.cancel(); }
159
+
160
+ // Allow to peek clipboard content by redirecting the
161
+ // pasting content into a temporary bin and grab the content of it.
162
+ function getClipboardData( evt, mode, callback )
163
+ {
164
+ var doc = this.document;
165
+
166
+ // Avoid recursions on 'paste' event or consequent paste too fast. (#5730)
167
+ if ( doc.getById( 'cke_pastebin' ) )
168
+ return;
169
+
170
+ // If the browser supports it, get the data directly
171
+ if ( mode == 'text' && evt.data && evt.data.$.clipboardData )
172
+ {
173
+ // evt.data.$.clipboardData.types contains all the flavours in Mac's Safari, but not on windows.
174
+ var plain = evt.data.$.clipboardData.getData( 'text/plain' );
175
+ if ( plain )
176
+ {
177
+ evt.data.preventDefault();
178
+ callback( plain );
179
+ return;
180
+ }
181
+ }
182
+
183
+ var sel = this.getSelection(),
184
+ range = new CKEDITOR.dom.range( doc );
185
+
186
+ // Create container to paste into
187
+ var pastebin = new CKEDITOR.dom.element( mode == 'text' ? 'textarea' : CKEDITOR.env.webkit ? 'body' : 'div', doc );
188
+ pastebin.setAttribute( 'id', 'cke_pastebin' );
189
+ // Safari requires a filler node inside the div to have the content pasted into it. (#4882)
190
+ CKEDITOR.env.webkit && pastebin.append( doc.createText( '\xa0' ) );
191
+ doc.getBody().append( pastebin );
192
+
193
+ pastebin.setStyles(
194
+ {
195
+ position : 'absolute',
196
+ // Position the bin exactly at the position of the selected element
197
+ // to avoid any subsequent document scroll.
198
+ top : sel.getStartElement().getDocumentPosition().y + 'px',
199
+ width : '1px',
200
+ height : '1px',
201
+ overflow : 'hidden'
202
+ });
203
+
204
+ // It's definitely a better user experience if we make the paste-bin pretty unnoticed
205
+ // by pulling it off the screen.
206
+ pastebin.setStyle( this.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-1000px' );
207
+
208
+ var bms = sel.createBookmarks();
209
+
210
+ this.on( 'selectionChange', cancel, null, null, 0 );
211
+
212
+ // Turn off design mode temporarily before give focus to the paste bin.
213
+ if ( mode == 'text' )
214
+ pastebin.$.focus();
215
+ else
216
+ {
217
+ range.setStartAt( pastebin, CKEDITOR.POSITION_AFTER_START );
218
+ range.setEndAt( pastebin, CKEDITOR.POSITION_BEFORE_END );
219
+ range.select( true );
220
+ }
221
+
222
+ var editor = this;
223
+ // Wait a while and grab the pasted contents
224
+ window.setTimeout( function()
225
+ {
226
+ // Restore properly the document focus. (#5684, #8849)
227
+ editor.document.getBody().focus();
228
+
229
+ editor.removeListener( 'selectionChange', cancel );
230
+
231
+ // Grab the HTML contents.
232
+ // We need to look for a apple style wrapper on webkit it also adds
233
+ // a div wrapper if you copy/paste the body of the editor.
234
+ // Remove hidden div and restore selection.
235
+ var bogusSpan;
236
+ pastebin = ( CKEDITOR.env.webkit
237
+ && ( bogusSpan = pastebin.getFirst() )
238
+ && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) ?
239
+ bogusSpan : pastebin );
240
+
241
+ // IE7: selection must go before removing paste. (#8691)
242
+ sel.selectBookmarks( bms );
243
+ pastebin.remove();
244
+ callback( pastebin[ 'get' + ( mode == 'text' ? 'Value' : 'Html' ) ]() );
245
+ }, 0 );
246
+ }
247
+
248
+ // Cutting off control type element in IE standards breaks the selection entirely. (#4881)
249
+ function fixCut( editor )
250
+ {
251
+ if ( !CKEDITOR.env.ie || CKEDITOR.env.quirks )
252
+ return;
253
+
254
+ var sel = editor.getSelection();
255
+ var control;
256
+ if( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) )
257
+ {
258
+ var range = sel.getRanges()[ 0 ];
259
+ var dummy = editor.document.createText( '' );
260
+ dummy.insertBefore( control );
261
+ range.setStartBefore( dummy );
262
+ range.setEndAfter( control );
263
+ sel.selectRanges( [ range ] );
264
+
265
+ // Clear up the fix if the paste wasn't succeeded.
266
+ setTimeout( function()
267
+ {
268
+ // Element still online?
269
+ if ( control.getParent() )
270
+ {
271
+ dummy.remove();
272
+ sel.selectElement( control );
273
+ }
274
+ }, 0 );
275
+ }
276
+ }
277
+
278
+ var depressBeforeEvent;
279
+ function stateFromNamedCommand( command, editor )
280
+ {
281
+ // IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)',
282
+ // guard to distinguish from the ordinary sources( either
283
+ // keyboard paste or execCommand ) (#4874).
284
+ CKEDITOR.env.ie && ( depressBeforeEvent = 1 );
285
+
286
+ var retval = CKEDITOR.TRISTATE_OFF;
287
+ try { retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED; }catch( er ){}
288
+
289
+ depressBeforeEvent = 0;
290
+ return retval;
291
+ }
292
+
293
+ var inReadOnly;
294
+ function setToolbarStates()
295
+ {
296
+ if ( this.mode != 'wysiwyg' )
297
+ return;
298
+
299
+ this.getCommand( 'cut' ).setState( inReadOnly ? CKEDITOR.TRISTATE_DISABLED : stateFromNamedCommand( 'Cut', this ) );
300
+ this.getCommand( 'copy' ).setState( stateFromNamedCommand( 'Copy', this ) );
301
+ var pasteState = inReadOnly ? CKEDITOR.TRISTATE_DISABLED :
302
+ CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', this );
303
+ this.fire( 'pasteState', pasteState );
304
+ }
305
+
306
+ // Register the plugin.
307
+ CKEDITOR.plugins.add( 'clipboard',
308
+ {
309
+ requires : [ 'dialog', 'htmldataprocessor' ],
310
+ init : function( editor )
311
+ {
312
+ // Inserts processed data into the editor at the end of the
313
+ // events chain.
314
+ editor.on( 'paste', function( evt )
315
+ {
316
+ var data = evt.data;
317
+ if ( data[ 'html' ] )
318
+ editor.insertHtml( data[ 'html' ] );
319
+ else if ( data[ 'text' ] )
320
+ editor.insertText( data[ 'text' ] );
321
+
322
+ setTimeout( function () { editor.fire( 'afterPaste' ); }, 0 );
323
+
324
+ }, null, null, 1000 );
325
+
326
+ editor.on( 'pasteDialog', function( evt )
327
+ {
328
+ setTimeout( function()
329
+ {
330
+ // Open default paste dialog.
331
+ editor.openDialog( 'paste' );
332
+ }, 0 );
333
+ });
334
+
335
+ editor.on( 'pasteState', function( evt )
336
+ {
337
+ editor.getCommand( 'paste' ).setState( evt.data );
338
+ });
339
+
340
+ function addButtonCommand( buttonName, commandName, command, ctxMenuOrder )
341
+ {
342
+ var lang = editor.lang[ commandName ];
343
+
344
+ editor.addCommand( commandName, command );
345
+ editor.ui.addButton( buttonName,
346
+ {
347
+ label : lang,
348
+ command : commandName
349
+ });
350
+
351
+ // If the "menu" plugin is loaded, register the menu item.
352
+ if ( editor.addMenuItems )
353
+ {
354
+ editor.addMenuItem( commandName,
355
+ {
356
+ label : lang,
357
+ command : commandName,
358
+ group : 'clipboard',
359
+ order : ctxMenuOrder
360
+ });
361
+ }
362
+ }
363
+
364
+ addButtonCommand( 'Cut', 'cut', new cutCopyCmd( 'cut' ), 1 );
365
+ addButtonCommand( 'Copy', 'copy', new cutCopyCmd( 'copy' ), 4 );
366
+ addButtonCommand( 'Paste', 'paste', pasteCmd, 8 );
367
+
368
+ CKEDITOR.dialog.add( 'paste', CKEDITOR.getUrl( this.path + 'dialogs/paste.js' ) );
369
+
370
+ editor.on( 'key', onKey, editor );
371
+
372
+ // We'll be catching all pasted content in one line, regardless of whether the
373
+ // it's introduced by a document command execution (e.g. toolbar buttons) or
374
+ // user paste behaviors. (e.g. Ctrl-V)
375
+ editor.on( 'contentDom', function()
376
+ {
377
+ var body = editor.document.getBody();
378
+
379
+ // Intercept the paste before it actually takes place.
380
+ body.on( !CKEDITOR.env.ie ? 'paste' : 'beforepaste', function( evt )
381
+ {
382
+ if ( depressBeforeEvent )
383
+ return;
384
+
385
+ // Dismiss the (wrong) 'beforepaste' event fired on toolbar menu open.
386
+ var domEvent = evt.data && evt.data.$;
387
+ if ( CKEDITOR.env.ie && domEvent && !domEvent.ctrlKey )
388
+ return;
389
+
390
+ // Fire 'beforePaste' event so clipboard flavor get customized
391
+ // by other plugins.
392
+ var eventData = { mode : 'html' };
393
+ editor.fire( 'beforePaste', eventData );
394
+
395
+ getClipboardData.call( editor, evt, eventData.mode, function ( data )
396
+ {
397
+ // The very last guard to make sure the
398
+ // paste has successfully happened.
399
+ if ( !( data = CKEDITOR.tools.trim( data.replace( /<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,'' ) ) ) )
400
+ return;
401
+
402
+ var dataTransfer = {};
403
+ dataTransfer[ eventData.mode ] = data;
404
+ editor.fire( 'paste', dataTransfer );
405
+ } );
406
+ });
407
+
408
+ if ( CKEDITOR.env.ie )
409
+ {
410
+ // Dismiss the (wrong) 'beforepaste' event fired on context menu open. (#7953)
411
+ body.on( 'contextmenu', function()
412
+ {
413
+ depressBeforeEvent = 1;
414
+ // Important: The following timeout will be called only after menu closed.
415
+ setTimeout( function() { depressBeforeEvent = 0; }, 0 );
416
+ } );
417
+
418
+ // Handle IE's late coming "paste" event when pasting from
419
+ // browser toolbar/context menu.
420
+ body.on( 'paste', function( evt )
421
+ {
422
+ if ( !editor.document.getById( 'cke_pastebin' ) )
423
+ {
424
+ // Prevent native paste.
425
+ evt.data.preventDefault();
426
+
427
+ depressBeforeEvent = 0;
428
+ // Resort to the paste command.
429
+ pasteCmd.exec( editor );
430
+ }
431
+ } );
432
+ }
433
+
434
+ body.on( 'beforecut', function() { !depressBeforeEvent && fixCut( editor ); } );
435
+
436
+ body.on( 'mouseup', function(){ setTimeout( function(){ setToolbarStates.call( editor ); }, 0 ); }, editor );
437
+ body.on( 'keyup', setToolbarStates, editor );
438
+ });
439
+
440
+ // For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that.
441
+ editor.on( 'selectionChange', function( evt )
442
+ {
443
+ inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly();
444
+ setToolbarStates.call( editor );
445
+ });
446
+
447
+ // If the "contextmenu" plugin is loaded, register the listeners.
448
+ if ( editor.contextMenu )
449
+ {
450
+ editor.contextMenu.addListener( function( element, selection )
451
+ {
452
+ var readOnly = selection.getRanges()[ 0 ].checkReadOnly();
453
+ return {
454
+ cut : !readOnly && stateFromNamedCommand( 'Cut', editor ),
455
+ copy : stateFromNamedCommand( 'Copy', editor ),
456
+ paste : !readOnly && ( CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', editor ) )
457
+ };
458
+ });
459
+ }
460
+ }
461
+ });
462
+ })();
463
+
464
+ /**
465
+ * Fired when a clipboard operation is about to be taken into the editor.
466
+ * Listeners can manipulate the data to be pasted before having it effectively
467
+ * inserted into the document.
468
+ * @name CKEDITOR.editor#paste
469
+ * @since 3.1
470
+ * @event
471
+ * @param {String} [data.html] The HTML data to be pasted. If not available, e.data.text will be defined.
472
+ * @param {String} [data.text] The plain text data to be pasted, available when plain text operations are to used. If not available, e.data.html will be defined.
473
+ */
474
+
475
+ /**
476
+ * Internal event to open the Paste dialog
477
+ * @name CKEDITOR.editor#pasteDialog
478
+ * @event
479
+ */