bedrock_sass 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (534) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -5
  3. data/assets/_vendor/ace/ace.js +21635 -0
  4. data/assets/_vendor/ace/ext-beautify.js +318 -0
  5. data/assets/_vendor/ace/ext-elastic_tabstops_lite.js +277 -0
  6. data/assets/_vendor/ace/ext-emmet.js +1226 -0
  7. data/assets/_vendor/ace/ext-error_marker.js +10 -0
  8. data/assets/_vendor/ace/ext-keybinding_menu.js +189 -0
  9. data/assets/_vendor/ace/ext-language_tools.js +1997 -0
  10. data/assets/_vendor/ace/ext-linking.js +65 -0
  11. data/assets/_vendor/ace/ext-modelist.js +228 -0
  12. data/assets/_vendor/ace/ext-options.js +750 -0
  13. data/assets/_vendor/ace/ext-rtl.js +110 -0
  14. data/assets/_vendor/ace/ext-searchbox.js +512 -0
  15. data/assets/_vendor/ace/ext-settings_menu.js +771 -0
  16. data/assets/_vendor/ace/ext-spellcheck.js +75 -0
  17. data/assets/_vendor/ace/ext-split.js +208 -0
  18. data/assets/_vendor/ace/ext-static_highlight.js +226 -0
  19. data/assets/_vendor/ace/ext-statusbar.js +57 -0
  20. data/assets/_vendor/ace/ext-textarea.js +567 -0
  21. data/assets/_vendor/ace/ext-themelist.js +67 -0
  22. data/assets/_vendor/ace/ext-whitespace.js +210 -0
  23. data/assets/_vendor/ace/keybinding-emacs.js +1165 -0
  24. data/assets/_vendor/ace/keybinding-vim.js +5673 -0
  25. data/assets/_vendor/ace/mode-abap.js +222 -0
  26. data/assets/_vendor/ace/mode-abc.js +267 -0
  27. data/assets/_vendor/ace/mode-actionscript.js +274 -0
  28. data/assets/_vendor/ace/mode-ada.js +138 -0
  29. data/assets/_vendor/ace/mode-apache_conf.js +363 -0
  30. data/assets/_vendor/ace/mode-applescript.js +279 -0
  31. data/assets/_vendor/ace/mode-asciidoc.js +349 -0
  32. data/assets/_vendor/ace/mode-asl.js +422 -0
  33. data/assets/_vendor/ace/mode-assembly_x86.js +193 -0
  34. data/assets/_vendor/ace/mode-autohotkey.js +243 -0
  35. data/assets/_vendor/ace/mode-batchfile.js +230 -0
  36. data/assets/_vendor/ace/mode-bro.js +334 -0
  37. data/assets/_vendor/ace/mode-c9search.js +294 -0
  38. data/assets/_vendor/ace/mode-c_cpp.js +502 -0
  39. data/assets/_vendor/ace/mode-cirru.js +211 -0
  40. data/assets/_vendor/ace/mode-clojure.js +314 -0
  41. data/assets/_vendor/ace/mode-cobol.js +102 -0
  42. data/assets/_vendor/ace/mode-coffee.js +400 -0
  43. data/assets/_vendor/ace/mode-coldfusion.js +2596 -0
  44. data/assets/_vendor/ace/mode-csharp.js +502 -0
  45. data/assets/_vendor/ace/mode-csound_document.js +3749 -0
  46. data/assets/_vendor/ace/mode-csound_orchestra.js +2687 -0
  47. data/assets/_vendor/ace/mode-csound_score.js +454 -0
  48. data/assets/_vendor/ace/mode-csp.js +60 -0
  49. data/assets/_vendor/ace/mode-css.js +723 -0
  50. data/assets/_vendor/ace/mode-curly.js +2564 -0
  51. data/assets/_vendor/ace/mode-d.js +520 -0
  52. data/assets/_vendor/ace/mode-dart.js +703 -0
  53. data/assets/_vendor/ace/mode-diff.js +146 -0
  54. data/assets/_vendor/ace/mode-django.js +2594 -0
  55. data/assets/_vendor/ace/mode-dockerfile.js +498 -0
  56. data/assets/_vendor/ace/mode-dot.js +418 -0
  57. data/assets/_vendor/ace/mode-drools.js +496 -0
  58. data/assets/_vendor/ace/mode-edifact.js +165 -0
  59. data/assets/_vendor/ace/mode-eiffel.js +136 -0
  60. data/assets/_vendor/ace/mode-ejs.js +3026 -0
  61. data/assets/_vendor/ace/mode-elixir.js +501 -0
  62. data/assets/_vendor/ace/mode-elm.js +307 -0
  63. data/assets/_vendor/ace/mode-erlang.js +1009 -0
  64. data/assets/_vendor/ace/mode-forth.js +297 -0
  65. data/assets/_vendor/ace/mode-fortran.js +431 -0
  66. data/assets/_vendor/ace/mode-fsharp.js +314 -0
  67. data/assets/_vendor/ace/mode-ftl.js +1192 -0
  68. data/assets/_vendor/ace/mode-gcode.js +94 -0
  69. data/assets/_vendor/ace/mode-gherkin.js +172 -0
  70. data/assets/_vendor/ace/mode-gitignore.js +60 -0
  71. data/assets/_vendor/ace/mode-glsl.js +579 -0
  72. data/assets/_vendor/ace/mode-gobstones.js +929 -0
  73. data/assets/_vendor/ace/mode-golang.js +414 -0
  74. data/assets/_vendor/ace/mode-graphqlschema.js +214 -0
  75. data/assets/_vendor/ace/mode-groovy.js +986 -0
  76. data/assets/_vendor/ace/mode-haml.js +1555 -0
  77. data/assets/_vendor/ace/mode-handlebars.js +2622 -0
  78. data/assets/_vendor/ace/mode-haskell.js +379 -0
  79. data/assets/_vendor/ace/mode-haskell_cabal.js +142 -0
  80. data/assets/_vendor/ace/mode-haxe.js +386 -0
  81. data/assets/_vendor/ace/mode-hjson.js +353 -0
  82. data/assets/_vendor/ace/mode-html.js +2509 -0
  83. data/assets/_vendor/ace/mode-html_elixir.js +3087 -0
  84. data/assets/_vendor/ace/mode-html_ruby.js +3043 -0
  85. data/assets/_vendor/ace/mode-ini.js +163 -0
  86. data/assets/_vendor/ace/mode-io.js +253 -0
  87. data/assets/_vendor/ace/mode-jack.js +347 -0
  88. data/assets/_vendor/ace/mode-jade.js +2126 -0
  89. data/assets/_vendor/ace/mode-java.js +975 -0
  90. data/assets/_vendor/ace/mode-javascript.js +797 -0
  91. data/assets/_vendor/ace/mode-json.js +327 -0
  92. data/assets/_vendor/ace/mode-jsoniq.js +4940 -0
  93. data/assets/_vendor/ace/mode-jsp.js +1430 -0
  94. data/assets/_vendor/ace/mode-jssm.js +325 -0
  95. data/assets/_vendor/ace/mode-jsx.js +412 -0
  96. data/assets/_vendor/ace/mode-julia.js +303 -0
  97. data/assets/_vendor/ace/mode-kotlin.js +795 -0
  98. data/assets/_vendor/ace/mode-latex.js +297 -0
  99. data/assets/_vendor/ace/mode-less.js +841 -0
  100. data/assets/_vendor/ace/mode-liquid.js +1193 -0
  101. data/assets/_vendor/ace/mode-lisp.js +112 -0
  102. data/assets/_vendor/ace/mode-livescript.js +280 -0
  103. data/assets/_vendor/ace/mode-logiql.js +317 -0
  104. data/assets/_vendor/ace/mode-lsl.js +343 -0
  105. data/assets/_vendor/ace/mode-lua.js +432 -0
  106. data/assets/_vendor/ace/mode-luapage.js +3007 -0
  107. data/assets/_vendor/ace/mode-lucene.js +87 -0
  108. data/assets/_vendor/ace/mode-makefile.js +410 -0
  109. data/assets/_vendor/ace/mode-markdown.js +3189 -0
  110. data/assets/_vendor/ace/mode-mask.js +1802 -0
  111. data/assets/_vendor/ace/mode-matlab.js +264 -0
  112. data/assets/_vendor/ace/mode-maze.js +291 -0
  113. data/assets/_vendor/ace/mode-mel.js +263 -0
  114. data/assets/_vendor/ace/mode-mixal.js +123 -0
  115. data/assets/_vendor/ace/mode-mushcode.js +681 -0
  116. data/assets/_vendor/ace/mode-mysql.js +168 -0
  117. data/assets/_vendor/ace/mode-nix.js +646 -0
  118. data/assets/_vendor/ace/mode-nsis.js +312 -0
  119. data/assets/_vendor/ace/mode-objectivec.js +739 -0
  120. data/assets/_vendor/ace/mode-ocaml.js +422 -0
  121. data/assets/_vendor/ace/mode-pascal.js +205 -0
  122. data/assets/_vendor/ace/mode-perl.js +380 -0
  123. data/assets/_vendor/ace/mode-pgsql.js +1508 -0
  124. data/assets/_vendor/ace/mode-php.js +13088 -0
  125. data/assets/_vendor/ace/mode-php_laravel_blade.js +13289 -0
  126. data/assets/_vendor/ace/mode-pig.js +310 -0
  127. data/assets/_vendor/ace/mode-plain_text.js +33 -0
  128. data/assets/_vendor/ace/mode-powershell.js +418 -0
  129. data/assets/_vendor/ace/mode-praat.js +478 -0
  130. data/assets/_vendor/ace/mode-prolog.js +371 -0
  131. data/assets/_vendor/ace/mode-properties.js +81 -0
  132. data/assets/_vendor/ace/mode-protobuf.js +592 -0
  133. data/assets/_vendor/ace/mode-puppet.js +370 -0
  134. data/assets/_vendor/ace/mode-python.js +273 -0
  135. data/assets/_vendor/ace/mode-r.js +310 -0
  136. data/assets/_vendor/ace/mode-razor.js +2869 -0
  137. data/assets/_vendor/ace/mode-rdoc.js +243 -0
  138. data/assets/_vendor/ace/mode-red.js +450 -0
  139. data/assets/_vendor/ace/mode-redshift.js +361 -0
  140. data/assets/_vendor/ace/mode-rhtml.js +2806 -0
  141. data/assets/_vendor/ace/mode-rst.js +257 -0
  142. data/assets/_vendor/ace/mode-ruby.js +497 -0
  143. data/assets/_vendor/ace/mode-rust.js +279 -0
  144. data/assets/_vendor/ace/mode-sass.js +441 -0
  145. data/assets/_vendor/ace/mode-scad.js +414 -0
  146. data/assets/_vendor/ace/mode-scala.js +982 -0
  147. data/assets/_vendor/ace/mode-scheme.js +232 -0
  148. data/assets/_vendor/ace/mode-scss.js +606 -0
  149. data/assets/_vendor/ace/mode-sh.js +447 -0
  150. data/assets/_vendor/ace/mode-sjs.js +1014 -0
  151. data/assets/_vendor/ace/mode-slim.js +4736 -0
  152. data/assets/_vendor/ace/mode-smarty.js +2635 -0
  153. data/assets/_vendor/ace/mode-snippets.js +207 -0
  154. data/assets/_vendor/ace/mode-soy_template.js +2847 -0
  155. data/assets/_vendor/ace/mode-space.js +168 -0
  156. data/assets/_vendor/ace/mode-sparql.js +320 -0
  157. data/assets/_vendor/ace/mode-sql.js +111 -0
  158. data/assets/_vendor/ace/mode-sqlserver.js +444 -0
  159. data/assets/_vendor/ace/mode-stylus.js +471 -0
  160. data/assets/_vendor/ace/mode-svg.js +1581 -0
  161. data/assets/_vendor/ace/mode-swift.js +390 -0
  162. data/assets/_vendor/ace/mode-tcl.js +383 -0
  163. data/assets/_vendor/ace/mode-terraform.js +398 -0
  164. data/assets/_vendor/ace/mode-tex.js +159 -0
  165. data/assets/_vendor/ace/mode-text.js +10 -0
  166. data/assets/_vendor/ace/mode-textile.js +150 -0
  167. data/assets/_vendor/ace/mode-toml.js +154 -0
  168. data/assets/_vendor/ace/mode-tsx.js +887 -0
  169. data/assets/_vendor/ace/mode-turtle.js +296 -0
  170. data/assets/_vendor/ace/mode-twig.js +2693 -0
  171. data/assets/_vendor/ace/mode-typescript.js +868 -0
  172. data/assets/_vendor/ace/mode-vala.js +676 -0
  173. data/assets/_vendor/ace/mode-vbscript.js +207 -0
  174. data/assets/_vendor/ace/mode-velocity.js +2790 -0
  175. data/assets/_vendor/ace/mode-verilog.js +119 -0
  176. data/assets/_vendor/ace/mode-vhdl.js +118 -0
  177. data/assets/_vendor/ace/mode-wollok.js +911 -0
  178. data/assets/_vendor/ace/mode-xml.js +677 -0
  179. data/assets/_vendor/ace/mode-xquery.js +4922 -0
  180. data/assets/_vendor/ace/mode-yaml.js +300 -0
  181. data/assets/_vendor/ace/snippets/abap.js +15 -0
  182. data/assets/_vendor/ace/snippets/abc.js +46 -0
  183. data/assets/_vendor/ace/snippets/actionscript.js +172 -0
  184. data/assets/_vendor/ace/snippets/ada.js +15 -0
  185. data/assets/_vendor/ace/snippets/apache_conf.js +15 -0
  186. data/assets/_vendor/ace/snippets/applescript.js +15 -0
  187. data/assets/_vendor/ace/snippets/asciidoc.js +15 -0
  188. data/assets/_vendor/ace/snippets/asl.js +14 -0
  189. data/assets/_vendor/ace/snippets/assembly_x86.js +15 -0
  190. data/assets/_vendor/ace/snippets/autohotkey.js +15 -0
  191. data/assets/_vendor/ace/snippets/batchfile.js +15 -0
  192. data/assets/_vendor/ace/snippets/bro.js +15 -0
  193. data/assets/_vendor/ace/snippets/c9search.js +15 -0
  194. data/assets/_vendor/ace/snippets/c_cpp.js +146 -0
  195. data/assets/_vendor/ace/snippets/cirru.js +15 -0
  196. data/assets/_vendor/ace/snippets/clojure.js +105 -0
  197. data/assets/_vendor/ace/snippets/cobol.js +15 -0
  198. data/assets/_vendor/ace/snippets/coffee.js +110 -0
  199. data/assets/_vendor/ace/snippets/coldfusion.js +15 -0
  200. data/assets/_vendor/ace/snippets/csharp.js +15 -0
  201. data/assets/_vendor/ace/snippets/csound_document.js +25 -0
  202. data/assets/_vendor/ace/snippets/csound_orchestra.js +62 -0
  203. data/assets/_vendor/ace/snippets/csound_score.js +15 -0
  204. data/assets/_vendor/ace/snippets/csp.js +15 -0
  205. data/assets/_vendor/ace/snippets/css.js +982 -0
  206. data/assets/_vendor/ace/snippets/curly.js +15 -0
  207. data/assets/_vendor/ace/snippets/d.js +15 -0
  208. data/assets/_vendor/ace/snippets/dart.js +98 -0
  209. data/assets/_vendor/ace/snippets/diff.js +26 -0
  210. data/assets/_vendor/ace/snippets/django.js +123 -0
  211. data/assets/_vendor/ace/snippets/dockerfile.js +15 -0
  212. data/assets/_vendor/ace/snippets/dot.js +15 -0
  213. data/assets/_vendor/ace/snippets/drools.js +34 -0
  214. data/assets/_vendor/ace/snippets/edifact.js +255 -0
  215. data/assets/_vendor/ace/snippets/eiffel.js +15 -0
  216. data/assets/_vendor/ace/snippets/ejs.js +15 -0
  217. data/assets/_vendor/ace/snippets/elixir.js +15 -0
  218. data/assets/_vendor/ace/snippets/elm.js +15 -0
  219. data/assets/_vendor/ace/snippets/erlang.js +175 -0
  220. data/assets/_vendor/ace/snippets/forth.js +15 -0
  221. data/assets/_vendor/ace/snippets/fortran.js +15 -0
  222. data/assets/_vendor/ace/snippets/fsharp.js +15 -0
  223. data/assets/_vendor/ace/snippets/ftl.js +15 -0
  224. data/assets/_vendor/ace/snippets/gcode.js +15 -0
  225. data/assets/_vendor/ace/snippets/gherkin.js +15 -0
  226. data/assets/_vendor/ace/snippets/gitignore.js +15 -0
  227. data/assets/_vendor/ace/snippets/glsl.js +15 -0
  228. data/assets/_vendor/ace/snippets/gobstones.js +49 -0
  229. data/assets/_vendor/ace/snippets/golang.js +15 -0
  230. data/assets/_vendor/ace/snippets/graphqlschema.js +47 -0
  231. data/assets/_vendor/ace/snippets/groovy.js +15 -0
  232. data/assets/_vendor/ace/snippets/haml.js +35 -0
  233. data/assets/_vendor/ace/snippets/handlebars.js +15 -0
  234. data/assets/_vendor/ace/snippets/haskell.js +97 -0
  235. data/assets/_vendor/ace/snippets/haskell_cabal.js +15 -0
  236. data/assets/_vendor/ace/snippets/haxe.js +15 -0
  237. data/assets/_vendor/ace/snippets/hjson.js +15 -0
  238. data/assets/_vendor/ace/snippets/html.js +870 -0
  239. data/assets/_vendor/ace/snippets/html_elixir.js +15 -0
  240. data/assets/_vendor/ace/snippets/html_ruby.js +15 -0
  241. data/assets/_vendor/ace/snippets/ini.js +15 -0
  242. data/assets/_vendor/ace/snippets/io.js +77 -0
  243. data/assets/_vendor/ace/snippets/jack.js +15 -0
  244. data/assets/_vendor/ace/snippets/jade.js +15 -0
  245. data/assets/_vendor/ace/snippets/java.js +255 -0
  246. data/assets/_vendor/ace/snippets/javascript.js +210 -0
  247. data/assets/_vendor/ace/snippets/json.js +15 -0
  248. data/assets/_vendor/ace/snippets/jsoniq.js +76 -0
  249. data/assets/_vendor/ace/snippets/jsp.js +114 -0
  250. data/assets/_vendor/ace/snippets/jssm.js +15 -0
  251. data/assets/_vendor/ace/snippets/jsx.js +15 -0
  252. data/assets/_vendor/ace/snippets/julia.js +15 -0
  253. data/assets/_vendor/ace/snippets/kotlin.js +15 -0
  254. data/assets/_vendor/ace/snippets/latex.js +15 -0
  255. data/assets/_vendor/ace/snippets/less.js +15 -0
  256. data/assets/_vendor/ace/snippets/liquid.js +15 -0
  257. data/assets/_vendor/ace/snippets/lisp.js +15 -0
  258. data/assets/_vendor/ace/snippets/livescript.js +15 -0
  259. data/assets/_vendor/ace/snippets/logiql.js +15 -0
  260. data/assets/_vendor/ace/snippets/lsl.js +1247 -0
  261. data/assets/_vendor/ace/snippets/lua.js +36 -0
  262. data/assets/_vendor/ace/snippets/luapage.js +15 -0
  263. data/assets/_vendor/ace/snippets/lucene.js +15 -0
  264. data/assets/_vendor/ace/snippets/makefile.js +19 -0
  265. data/assets/_vendor/ace/snippets/markdown.js +103 -0
  266. data/assets/_vendor/ace/snippets/mask.js +15 -0
  267. data/assets/_vendor/ace/snippets/matlab.js +15 -0
  268. data/assets/_vendor/ace/snippets/maze.js +24 -0
  269. data/assets/_vendor/ace/snippets/mel.js +15 -0
  270. data/assets/_vendor/ace/snippets/mixal.js +15 -0
  271. data/assets/_vendor/ace/snippets/mushcode.js +15 -0
  272. data/assets/_vendor/ace/snippets/mysql.js +15 -0
  273. data/assets/_vendor/ace/snippets/nix.js +15 -0
  274. data/assets/_vendor/ace/snippets/nsis.js +15 -0
  275. data/assets/_vendor/ace/snippets/objectivec.js +15 -0
  276. data/assets/_vendor/ace/snippets/ocaml.js +15 -0
  277. data/assets/_vendor/ace/snippets/pascal.js +15 -0
  278. data/assets/_vendor/ace/snippets/perl.js +362 -0
  279. data/assets/_vendor/ace/snippets/pgsql.js +15 -0
  280. data/assets/_vendor/ace/snippets/php.js +398 -0
  281. data/assets/_vendor/ace/snippets/php_laravel_blade.js +15 -0
  282. data/assets/_vendor/ace/snippets/pig.js +15 -0
  283. data/assets/_vendor/ace/snippets/plain_text.js +15 -0
  284. data/assets/_vendor/ace/snippets/powershell.js +15 -0
  285. data/assets/_vendor/ace/snippets/praat.js +15 -0
  286. data/assets/_vendor/ace/snippets/prolog.js +15 -0
  287. data/assets/_vendor/ace/snippets/properties.js +15 -0
  288. data/assets/_vendor/ace/snippets/protobuf.js +15 -0
  289. data/assets/_vendor/ace/snippets/puppet.js +15 -0
  290. data/assets/_vendor/ace/snippets/python.js +173 -0
  291. data/assets/_vendor/ace/snippets/r.js +136 -0
  292. data/assets/_vendor/ace/snippets/razor.js +18 -0
  293. data/assets/_vendor/ace/snippets/rdoc.js +15 -0
  294. data/assets/_vendor/ace/snippets/red.js +15 -0
  295. data/assets/_vendor/ace/snippets/redshift.js +15 -0
  296. data/assets/_vendor/ace/snippets/rhtml.js +15 -0
  297. data/assets/_vendor/ace/snippets/rst.js +37 -0
  298. data/assets/_vendor/ace/snippets/ruby.js +943 -0
  299. data/assets/_vendor/ace/snippets/rust.js +15 -0
  300. data/assets/_vendor/ace/snippets/sass.js +15 -0
  301. data/assets/_vendor/ace/snippets/scad.js +15 -0
  302. data/assets/_vendor/ace/snippets/scala.js +15 -0
  303. data/assets/_vendor/ace/snippets/scheme.js +15 -0
  304. data/assets/_vendor/ace/snippets/scss.js +15 -0
  305. data/assets/_vendor/ace/snippets/sh.js +98 -0
  306. data/assets/_vendor/ace/snippets/sjs.js +15 -0
  307. data/assets/_vendor/ace/snippets/slim.js +15 -0
  308. data/assets/_vendor/ace/snippets/smarty.js +15 -0
  309. data/assets/_vendor/ace/snippets/snippets.js +24 -0
  310. data/assets/_vendor/ace/snippets/soy_template.js +15 -0
  311. data/assets/_vendor/ace/snippets/space.js +15 -0
  312. data/assets/_vendor/ace/snippets/sparql.js +15 -0
  313. data/assets/_vendor/ace/snippets/sql.js +41 -0
  314. data/assets/_vendor/ace/snippets/sqlserver.js +84 -0
  315. data/assets/_vendor/ace/snippets/stylus.js +15 -0
  316. data/assets/_vendor/ace/snippets/svg.js +15 -0
  317. data/assets/_vendor/ace/snippets/swift.js +15 -0
  318. data/assets/_vendor/ace/snippets/tcl.js +107 -0
  319. data/assets/_vendor/ace/snippets/terraform.js +15 -0
  320. data/assets/_vendor/ace/snippets/tex.js +205 -0
  321. data/assets/_vendor/ace/snippets/text.js +15 -0
  322. data/assets/_vendor/ace/snippets/textile.js +45 -0
  323. data/assets/_vendor/ace/snippets/toml.js +15 -0
  324. data/assets/_vendor/ace/snippets/tsx.js +15 -0
  325. data/assets/_vendor/ace/snippets/turtle.js +15 -0
  326. data/assets/_vendor/ace/snippets/twig.js +15 -0
  327. data/assets/_vendor/ace/snippets/typescript.js +15 -0
  328. data/assets/_vendor/ace/snippets/vala.js +201 -0
  329. data/assets/_vendor/ace/snippets/vbscript.js +15 -0
  330. data/assets/_vendor/ace/snippets/velocity.js +44 -0
  331. data/assets/_vendor/ace/snippets/verilog.js +15 -0
  332. data/assets/_vendor/ace/snippets/vhdl.js +15 -0
  333. data/assets/_vendor/ace/snippets/wollok.js +99 -0
  334. data/assets/_vendor/ace/snippets/xml.js +15 -0
  335. data/assets/_vendor/ace/snippets/xquery.js +76 -0
  336. data/assets/_vendor/ace/snippets/yaml.js +15 -0
  337. data/assets/_vendor/ace/theme-ambiance.js +185 -0
  338. data/assets/_vendor/ace/theme-chaos.js +164 -0
  339. data/assets/_vendor/ace/theme-chrome.js +136 -0
  340. data/assets/_vendor/ace/theme-clouds.js +103 -0
  341. data/assets/_vendor/ace/theme-clouds_midnight.js +104 -0
  342. data/assets/_vendor/ace/theme-cobalt.js +121 -0
  343. data/assets/_vendor/ace/theme-crimson_editor.js +126 -0
  344. data/assets/_vendor/ace/theme-dawn.js +116 -0
  345. data/assets/_vendor/ace/theme-dracula.js +136 -0
  346. data/assets/_vendor/ace/theme-dreamweaver.js +149 -0
  347. data/assets/_vendor/ace/theme-eclipse.js +106 -0
  348. data/assets/_vendor/ace/theme-github.js +110 -0
  349. data/assets/_vendor/ace/theme-gob.js +120 -0
  350. data/assets/_vendor/ace/theme-gruvbox.js +90 -0
  351. data/assets/_vendor/ace/theme-idle_fingers.js +104 -0
  352. data/assets/_vendor/ace/theme-iplastic.js +129 -0
  353. data/assets/_vendor/ace/theme-katzenmilch.js +129 -0
  354. data/assets/_vendor/ace/theme-kr_theme.js +112 -0
  355. data/assets/_vendor/ace/theme-kuroir.js +69 -0
  356. data/assets/_vendor/ace/theme-merbivore.js +103 -0
  357. data/assets/_vendor/ace/theme-merbivore_soft.js +104 -0
  358. data/assets/_vendor/ace/theme-mono_industrial.js +115 -0
  359. data/assets/_vendor/ace/theme-monokai.js +113 -0
  360. data/assets/_vendor/ace/theme-pastel_on_dark.js +116 -0
  361. data/assets/_vendor/ace/theme-solarized_dark.js +96 -0
  362. data/assets/_vendor/ace/theme-solarized_light.js +99 -0
  363. data/assets/_vendor/ace/theme-sqlserver.js +146 -0
  364. data/assets/_vendor/ace/theme-terminal.js +122 -0
  365. data/assets/_vendor/ace/theme-textmate.js +138 -0
  366. data/assets/_vendor/ace/theme-tomorrow.js +116 -0
  367. data/assets/_vendor/ace/theme-tomorrow_night.js +116 -0
  368. data/assets/_vendor/ace/theme-tomorrow_night_blue.js +114 -0
  369. data/assets/_vendor/ace/theme-tomorrow_night_bright.js +129 -0
  370. data/assets/_vendor/ace/theme-tomorrow_night_eighties.js +116 -0
  371. data/assets/_vendor/ace/theme-twilight.js +117 -0
  372. data/assets/_vendor/ace/theme-vibrant_ink.js +102 -0
  373. data/assets/_vendor/ace/theme-xcode.js +96 -0
  374. data/assets/_vendor/ace/worker-coffee.js +2165 -0
  375. data/assets/_vendor/ace/worker-css.js +8764 -0
  376. data/assets/_vendor/ace/worker-html.js +11614 -0
  377. data/assets/_vendor/ace/worker-javascript.js +12491 -0
  378. data/assets/_vendor/ace/worker-json.js +2396 -0
  379. data/assets/_vendor/ace/worker-lua.js +3637 -0
  380. data/assets/_vendor/ace/worker-php.js +4313 -0
  381. data/assets/_vendor/ace/worker-xml.js +3899 -0
  382. data/assets/_vendor/ace/worker-xquery.js +70688 -0
  383. data/assets/_vendor/motion-ui/_settings.scss +1 -0
  384. data/assets/_vendor/motion-ui/effects/_fade.scss +1 -4
  385. data/assets/_vendor/motion-ui/effects/_hinge.scss +4 -3
  386. data/assets/_vendor/motion-ui/effects/_shake.scss +1 -1
  387. data/assets/_vendor/motion-ui/effects/_slide.scss +4 -3
  388. data/assets/_vendor/motion-ui/effects/_spin.scss +4 -3
  389. data/assets/_vendor/motion-ui/effects/_wiggle.scss +1 -1
  390. data/assets/_vendor/motion-ui/effects/_zoom.scss +2 -2
  391. data/assets/_vendor/motion-ui/motion-ui.scss +2 -0
  392. data/assets/_vendor/motion-ui/transitions/_fade.scss +6 -4
  393. data/assets/_vendor/motion-ui/transitions/_hinge.scss +3 -2
  394. data/assets/_vendor/motion-ui/transitions/_slide.scss +3 -2
  395. data/assets/_vendor/motion-ui/transitions/_spin.scss +2 -1
  396. data/assets/_vendor/motion-ui/transitions/_zoom.scss +6 -4
  397. data/assets/_vendor/motion-ui/util/_animation.scss +1 -1
  398. data/assets/_vendor/motion-ui/util/_args.scss +2 -2
  399. data/assets/_vendor/motion-ui/util/_function.scss +94 -0
  400. data/assets/_vendor/motion-ui/util/_keyframe.scss +5 -5
  401. data/assets/_vendor/motion-ui/util/_series.scss +20 -17
  402. data/assets/_vendor/motion-ui/util/_string.scss +36 -0
  403. data/assets/_vendor/tinymce/plugins/advlist/plugin.js +136 -404
  404. data/assets/_vendor/tinymce/plugins/advlist/plugin.min.js +1 -1
  405. data/assets/_vendor/tinymce/plugins/anchor/plugin.js +103 -323
  406. data/assets/_vendor/tinymce/plugins/anchor/plugin.min.js +1 -1
  407. data/assets/_vendor/tinymce/plugins/autolink/plugin.js +153 -377
  408. data/assets/_vendor/tinymce/plugins/autolink/plugin.min.js +1 -1
  409. data/assets/_vendor/tinymce/plugins/autoresize/plugin.js +145 -427
  410. data/assets/_vendor/tinymce/plugins/autoresize/plugin.min.js +1 -1
  411. data/assets/_vendor/tinymce/plugins/autosave/plugin.js +197 -579
  412. data/assets/_vendor/tinymce/plugins/autosave/plugin.min.js +1 -1
  413. data/assets/_vendor/tinymce/plugins/bbcode/plugin.js +88 -251
  414. data/assets/_vendor/tinymce/plugins/bbcode/plugin.min.js +1 -1
  415. data/assets/_vendor/tinymce/plugins/charmap/plugin.js +1243 -818
  416. data/assets/_vendor/tinymce/plugins/charmap/plugin.min.js +1 -1
  417. data/assets/_vendor/tinymce/plugins/code/plugin.js +82 -326
  418. data/assets/_vendor/tinymce/plugins/code/plugin.min.js +1 -1
  419. data/assets/_vendor/tinymce/plugins/codesample/plugin.js +829 -1444
  420. data/assets/_vendor/tinymce/plugins/codesample/plugin.min.js +1 -1
  421. data/assets/_vendor/tinymce/plugins/colorpicker/plugin.js +111 -257
  422. data/assets/_vendor/tinymce/plugins/colorpicker/plugin.min.js +1 -1
  423. data/assets/_vendor/tinymce/plugins/contextmenu/plugin.js +141 -469
  424. data/assets/_vendor/tinymce/plugins/contextmenu/plugin.min.js +1 -1
  425. data/assets/_vendor/tinymce/plugins/directionality/plugin.js +57 -261
  426. data/assets/_vendor/tinymce/plugins/directionality/plugin.min.js +1 -1
  427. data/assets/_vendor/tinymce/plugins/emoticons/plugin.js +78 -247
  428. data/assets/_vendor/tinymce/plugins/emoticons/plugin.min.js +1 -1
  429. data/assets/_vendor/tinymce/plugins/fullpage/plugin.js +463 -906
  430. data/assets/_vendor/tinymce/plugins/fullpage/plugin.min.js +1 -1
  431. data/assets/_vendor/tinymce/plugins/fullscreen/plugin.js +149 -427
  432. data/assets/_vendor/tinymce/plugins/fullscreen/plugin.min.js +1 -1
  433. data/assets/_vendor/tinymce/plugins/help/plugin.js +634 -1434
  434. data/assets/_vendor/tinymce/plugins/help/plugin.min.js +1 -1
  435. data/assets/_vendor/tinymce/plugins/hr/plugin.js +29 -185
  436. data/assets/_vendor/tinymce/plugins/hr/plugin.min.js +1 -1
  437. data/assets/_vendor/tinymce/plugins/image/plugin.js +1147 -1508
  438. data/assets/_vendor/tinymce/plugins/image/plugin.min.js +1 -1
  439. data/assets/_vendor/tinymce/plugins/imagetools/plugin.js +3319 -4079
  440. data/assets/_vendor/tinymce/plugins/imagetools/plugin.min.js +1 -2
  441. data/assets/_vendor/tinymce/plugins/importcss/plugin.js +230 -543
  442. data/assets/_vendor/tinymce/plugins/importcss/plugin.min.js +1 -1
  443. data/assets/_vendor/tinymce/plugins/insertdatetime/plugin.js +151 -460
  444. data/assets/_vendor/tinymce/plugins/insertdatetime/plugin.min.js +1 -1
  445. data/assets/_vendor/tinymce/plugins/legacyoutput/plugin.js +204 -379
  446. data/assets/_vendor/tinymce/plugins/legacyoutput/plugin.min.js +1 -1
  447. data/assets/_vendor/tinymce/plugins/link/plugin.js +644 -1162
  448. data/assets/_vendor/tinymce/plugins/link/plugin.min.js +1 -1
  449. data/assets/_vendor/tinymce/plugins/lists/plugin.js +1005 -1875
  450. data/assets/_vendor/tinymce/plugins/lists/plugin.min.js +1 -1
  451. data/assets/_vendor/tinymce/plugins/media/plugin.js +1066 -1926
  452. data/assets/_vendor/tinymce/plugins/media/plugin.min.js +1 -1
  453. data/assets/_vendor/tinymce/plugins/nonbreaking/plugin.js +70 -298
  454. data/assets/_vendor/tinymce/plugins/nonbreaking/plugin.min.js +1 -1
  455. data/assets/_vendor/tinymce/plugins/noneditable/plugin.js +96 -294
  456. data/assets/_vendor/tinymce/plugins/noneditable/plugin.min.js +1 -1
  457. data/assets/_vendor/tinymce/plugins/pagebreak/plugin.js +92 -337
  458. data/assets/_vendor/tinymce/plugins/pagebreak/plugin.min.js +1 -1
  459. data/assets/_vendor/tinymce/plugins/paste/plugin.js +1363 -2801
  460. data/assets/_vendor/tinymce/plugins/paste/plugin.min.js +1 -1
  461. data/assets/_vendor/tinymce/plugins/preview/plugin.js +106 -393
  462. data/assets/_vendor/tinymce/plugins/preview/plugin.min.js +1 -1
  463. data/assets/_vendor/tinymce/plugins/print/plugin.js +29 -185
  464. data/assets/_vendor/tinymce/plugins/print/plugin.min.js +1 -1
  465. data/assets/_vendor/tinymce/plugins/save/plugin.js +100 -350
  466. data/assets/_vendor/tinymce/plugins/save/plugin.min.js +1 -1
  467. data/assets/_vendor/tinymce/plugins/searchreplace/plugin.js +491 -865
  468. data/assets/_vendor/tinymce/plugins/searchreplace/plugin.min.js +1 -1
  469. data/assets/_vendor/tinymce/plugins/spellchecker/plugin.js +630 -1292
  470. data/assets/_vendor/tinymce/plugins/spellchecker/plugin.min.js +1 -1
  471. data/assets/_vendor/tinymce/plugins/tabfocus/plugin.js +96 -391
  472. data/assets/_vendor/tinymce/plugins/tabfocus/plugin.min.js +1 -1
  473. data/assets/_vendor/tinymce/plugins/table/plugin.js +9537 -14920
  474. data/assets/_vendor/tinymce/plugins/table/plugin.min.js +1 -5
  475. data/assets/_vendor/tinymce/plugins/template/plugin.js +309 -771
  476. data/assets/_vendor/tinymce/plugins/template/plugin.min.js +1 -1
  477. data/assets/_vendor/tinymce/plugins/textcolor/plugin.js +319 -592
  478. data/assets/_vendor/tinymce/plugins/textcolor/plugin.min.js +1 -1
  479. data/assets/_vendor/tinymce/plugins/textpattern/plugin.js +326 -674
  480. data/assets/_vendor/tinymce/plugins/textpattern/plugin.min.js +1 -1
  481. data/assets/_vendor/tinymce/plugins/toc/plugin.js +199 -530
  482. data/assets/_vendor/tinymce/plugins/toc/plugin.min.js +1 -1
  483. data/assets/_vendor/tinymce/plugins/visualblocks/plugin.js +112 -436
  484. data/assets/_vendor/tinymce/plugins/visualblocks/plugin.min.js +1 -1
  485. data/assets/_vendor/tinymce/plugins/visualchars/plugin.js +428 -1248
  486. data/assets/_vendor/tinymce/plugins/visualchars/plugin.min.js +1 -1
  487. data/assets/_vendor/tinymce/plugins/wordcount/plugin.js +307 -699
  488. data/assets/_vendor/tinymce/plugins/wordcount/plugin.min.js +1 -1
  489. data/assets/_vendor/tinymce/skins/lightgray/content.inline.min.css +1 -1
  490. data/assets/_vendor/tinymce/skins/lightgray/content.min.css +1 -1
  491. data/assets/_vendor/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  492. data/assets/_vendor/tinymce/skins/lightgray/fonts/tinymce.svg +1 -1
  493. data/assets/_vendor/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  494. data/assets/_vendor/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  495. data/assets/_vendor/tinymce/skins/lightgray/skin.min.css +1 -1
  496. data/assets/_vendor/tinymce/skins/lightgray/skin.mobile.min.css +1 -1
  497. data/assets/_vendor/tinymce/themes/inlite/theme.js +9693 -18245
  498. data/assets/_vendor/tinymce/themes/inlite/theme.min.js +1 -5
  499. data/assets/_vendor/tinymce/themes/mobile/theme.js +12629 -22467
  500. data/assets/_vendor/tinymce/themes/mobile/theme.min.js +1 -8
  501. data/assets/_vendor/tinymce/themes/modern/theme.js +9510 -17780
  502. data/assets/_vendor/tinymce/themes/modern/theme.min.js +1 -5
  503. data/assets/_vendor/tinymce/tinymce.js +25087 -42606
  504. data/assets/_vendor/yoastseo/css/_icons.scss +7 -7
  505. data/assets/_vendor/yoastseo/css/_snippet-editor.scss +1 -1
  506. data/assets/bedrock/js/bedrock.js +1 -71697
  507. data/assets/bedrock/scss/_bedrock-components.scss +20 -0
  508. data/assets/bedrock/scss/_bedrock-settings.scss +12 -4
  509. data/assets/bedrock/scss/_foundation-settings.scss +4 -2
  510. data/assets/bedrock/scss/components/ace-editor.scss +21 -0
  511. data/assets/bedrock/scss/components/attachments-grid.scss +18 -15
  512. data/assets/bedrock/scss/components/date-picker.scss +146 -0
  513. data/assets/bedrock/scss/components/dropzone-upload.scss +7 -0
  514. data/assets/bedrock/scss/components/file-input.scss +7 -0
  515. data/assets/bedrock/scss/components/file-preview.scss +36 -0
  516. data/assets/bedrock/scss/components/frame-embed.scss +23 -0
  517. data/assets/bedrock/scss/components/global.scss +27 -0
  518. data/assets/bedrock/scss/components/helper-classes.scss +1 -0
  519. data/assets/bedrock/scss/components/icon-box.scss +38 -0
  520. data/assets/bedrock/scss/components/item-list.scss +66 -0
  521. data/assets/bedrock/scss/components/lists.scss +58 -0
  522. data/assets/bedrock/scss/components/off-canvas-menu.scss +27 -15
  523. data/assets/bedrock/scss/components/place-autocomplete.scss +90 -0
  524. data/assets/bedrock/scss/components/rrule-generator.scss +102 -0
  525. data/assets/bedrock/scss/components/rrule-reveal.scss +14 -0
  526. data/assets/bedrock/scss/components/select-box.scss +1 -0
  527. data/assets/bedrock/scss/components/seo-analysis.scss +5 -0
  528. data/assets/bedrock/scss/components/textarea.scss +14 -2
  529. data/assets/bedrock/scss/components/tiny-mce-editor.scss +5 -16
  530. data/lib/bedrock_sass.rb +5 -0
  531. data/lib/bedrock_sass/version.rb +1 -1
  532. data/lib/tasks/before_assets_precompile.rake +1 -0
  533. metadata +395 -4
  534. data/CODE_OF_CONDUCT.md +0 -74
@@ -1 +1 @@
1
- !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e[f]=d(a[f]);b.apply(null,e)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("5",tinymce.util.Tools.resolve),g("1",["5"],function(a){return a("tinymce.PluginManager")}),g("6",["5"],function(a){return a("tinymce.EditorManager")}),h("i",Array),h("j",Error),g("d",["i","j"],function(a,b){var c=function(){},d=function(a){return function(){return a()}},e=function(a,b){return function(){return a(b.apply(null,arguments))}},f=function(a){return function(){return a}},g=function(a){return a},h=function(a,b){return a===b},i=function(b){for(var c=new a(arguments.length-1),d=1;d<arguments.length;d++)c[d-1]=arguments[d];return function(){for(var d=new a(arguments.length),e=0;e<d.length;e++)d[e]=arguments[e];var f=c.concat(d);return b.apply(null,f)}},j=function(a){return function(){return!a.apply(null,arguments)}},k=function(a){return function(){throw new b(a)}},l=function(a){return a()},m=function(a){a()},n=f(!1),o=f(!0);return{noop:c,noarg:d,compose:e,constant:f,identity:g,tripleEquals:h,curry:i,not:j,die:k,apply:l,call:m,never:n,always:o}}),h("m",Object),g("h",["d","m"],function(a,b){var c=a.never,d=a.always,e=function(){return f},f=function(){var f=function(a){return a.isNone()},g=function(a){return a()},h=function(a){return a},i=function(){},j={fold:function(a,b){return a()},is:c,isSome:c,isNone:d,getOr:h,getOrThunk:g,getOrDie:function(a){throw new Error(a||"error: getOrDie called on none.")},or:h,orThunk:g,map:e,ap:e,each:i,bind:e,flatten:e,exists:c,forall:d,filter:e,equals:f,equals_:f,toArray:function(){return[]},toString:a.constant("none()")};return b.freeze&&b.freeze(j),j}(),g=function(a){var b=function(){return a},h=function(){return k},i=function(b){return g(b(a))},j=function(b){return b(a)},k={fold:function(b,c){return c(a)},is:function(b){return a===b},isSome:d,isNone:c,getOr:b,getOrThunk:b,getOrDie:b,or:h,orThunk:h,map:i,ap:function(b){return b.fold(e,function(b){return g(b(a))})},each:function(b){b(a)},bind:j,flatten:b,exists:j,forall:j,filter:function(b){return b(a)?k:f},equals:function(b){return b.is(a)},equals_:function(b,d){return b.fold(c,function(b){return d(a,b)})},toArray:function(){return[a]},toString:function(){return"some("+a+")"}};return k},h=function(a){return null===a||void 0===a?f:g(a)};return{some:g,none:e,from:h}}),h("k",String),g("a",["h","i","j","k"],function(a,b,c,d){var e=function(){var a=b.prototype.indexOf,c=function(b,c){return a.call(b,c)},d=function(a,b){return u(a,b)};return void 0===a?d:c}(),f=function(b,c){var d=e(b,c);return d===-1?a.none():a.some(d)},g=function(a,b){return e(a,b)>-1},h=function(a,b){return t(a,b).isSome()},i=function(a,b){for(var c=[],d=0;d<a;d++)c.push(b(d));return c},j=function(a,b){for(var c=[],d=0;d<a.length;d+=b){var e=a.slice(d,d+b);c.push(e)}return c},k=function(a,c){for(var d=a.length,e=new b(d),f=0;f<d;f++){var g=a[f];e[f]=c(g,f,a)}return e},l=function(a,b){for(var c=0,d=a.length;c<d;c++){var e=a[c];b(e,c,a)}},m=function(a,b){for(var c=a.length-1;c>=0;c--){var d=a[c];b(d,c,a)}},n=function(a,b){for(var c=[],d=[],e=0,f=a.length;e<f;e++){var g=a[e],h=b(g,e,a)?c:d;h.push(g)}return{pass:c,fail:d}},o=function(a,b){for(var c=[],d=0,e=a.length;d<e;d++){var f=a[d];b(f,d,a)&&c.push(f)}return c},p=function(a,b){if(0===a.length)return[];for(var c=b(a[0]),d=[],e=[],f=0,g=a.length;f<g;f++){var h=a[f],i=b(h);i!==c&&(d.push(e),e=[]),c=i,e.push(h)}return 0!==e.length&&d.push(e),d},q=function(a,b,c){return m(a,function(a){c=b(c,a)}),c},r=function(a,b,c){return l(a,function(a){c=b(c,a)}),c},s=function(b,c){for(var d=0,e=b.length;d<e;d++){var f=b[d];if(c(f,d,b))return a.some(f)}return a.none()},t=function(b,c){for(var d=0,e=b.length;d<e;d++){var f=b[d];if(c(f,d,b))return a.some(d)}return a.none()},u=function(a,b){for(var c=0,d=a.length;c<d;++c)if(a[c]===b)return c;return-1},v=b.prototype.push,w=function(a){for(var d=[],e=0,f=a.length;e<f;++e){if(!b.prototype.isPrototypeOf(a[e]))throw new c("Arr.flatten item "+e+" was not an array, input: "+a);v.apply(d,a[e])}return d},x=function(a,b){var c=k(a,b);return w(c)},y=function(a,b){for(var c=0,d=a.length;c<d;++c){var e=a[c];if(b(e,c,a)!==!0)return!1}return!0},z=function(a,b){return a.length===b.length&&y(a,function(a,c){return a===b[c]})},A=b.prototype.slice,B=function(a){var b=A.call(a,0);return b.reverse(),b},C=function(a,b){return o(a,function(a){return!g(b,a)})},D=function(a,b){for(var c={},e=0,f=a.length;e<f;e++){var g=a[e];c[d(g)]=b(g,e)}return c},E=function(a){return[a]},F=function(a,b){var c=A.call(a,0);return c.sort(b),c},G=function(b){return 0===b.length?a.none():a.some(b[0])},H=function(b){return 0===b.length?a.none():a.some(b[b.length-1])};return{map:k,each:l,eachr:m,partition:n,filter:o,groupBy:p,indexOf:f,foldr:q,foldl:r,find:s,findIndex:t,flatten:w,bind:x,forall:y,exists:h,contains:g,equal:z,reverse:B,chunk:j,difference:C,mapToObject:D,pure:E,sort:F,range:i,head:G,last:H}}),g("b",["5"],function(a){return a("tinymce.util.I18n")}),g("l",["5"],function(a){return a("tinymce.Env")}),g("c",["l"],function(a){var b=a.mac?"\u2318":"Ctrl",c=a.mac?"Ctrl + Alt":"Shift + Alt",d=[{shortcut:b+" + B",action:"Bold"},{shortcut:b+" + I",action:"Italic"},{shortcut:b+" + U",action:"Underline"},{shortcut:b+" + A",action:"Select all"},{shortcut:b+" + Y or "+b+" + Shift + Z",action:"Redo"},{shortcut:b+" + Z",action:"Undo"},{shortcut:c+" + 1",action:"Header 1"},{shortcut:c+" + 2",action:"Header 2"},{shortcut:c+" + 3",action:"Header 3"},{shortcut:c+" + 4",action:"Header 4"},{shortcut:c+" + 5",action:"Header 5"},{shortcut:c+" + 6",action:"Header 6"},{shortcut:c+" + 7",action:"Paragraph"},{shortcut:c+" + 8",action:"Div"},{shortcut:c+" + 9",action:"Address"},{shortcut:"Alt + F9",action:"Focus to menubar"},{shortcut:"Alt + F10",action:"Focus to toolbar"},{shortcut:"Alt + F11",action:"Focus to element path"},{shortcut:"Ctrl + Shift + P > Ctrl + Shift + P",action:"Focus to contextual toolbar"},{shortcut:b+" + K",action:"Insert link (if link plugin activated)"},{shortcut:b+" + S",action:"Save (if save plugin activated)"},{shortcut:b+" + F",action:"Find (if searchreplace plugin activated)"}];return{shortcuts:d}}),g("7",["a","b","c"],function(a,b,c){var d=function(){var d=function(a){return'aria-label="Action: '+a.action+", Shortcut: "+a.shortcut.replace(/Ctrl/g,"Control")+'"'},e=a.map(c.shortcuts,function(a){return'<tr data-mce-tabstop="1" tabindex="-1" '+d(a)+"><td>"+b.translate(a.action)+"</td><td>"+a.shortcut+"</td></tr>"}).join("");return{title:"Handy Shortcuts",type:"container",style:"overflow-y: auto; overflow-x: hidden; max-height: 250px",items:[{type:"container",html:'<div><table class="mce-table-striped"><thead><th>'+b.translate("Action")+"</th><th>"+b.translate("Shortcut")+"</th></thead>"+e+"</table></div>"}]}};return{makeTab:d}}),g("e",["h","m"],function(a,b){var c=function(){var a=b.keys,c=function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c);return b};return void 0===a?c:a}(),d=function(a,b){for(var d=c(a),e=0,f=d.length;e<f;e++){var g=d[e],h=a[g];b(h,g,a)}},e=function(a,b){return f(a,function(a,c,d){return{k:c,v:b(a,c,d)}})},f=function(a,b){var c={};return d(a,function(d,e){var f=b(d,e,a);c[f.k]=f.v}),c},g=function(a,b){var c={},e={};return d(a,function(a,d){var f=b(a,d)?c:e;f[d]=a}),{t:c,f:e}},h=function(a,b){var c=[];return d(a,function(a,d){c.push(b(a,d))}),c},i=function(b,d){for(var e=c(b),f=0,g=e.length;f<g;f++){var h=e[f],i=b[h];if(d(i,h,b))return a.some(i)}return a.none()},j=function(a){return h(a,function(a){return a})},k=function(a){return j(a).length};return{bifilter:g,each:d,map:e,mapToArray:h,tupleMap:f,find:i,keys:c,values:j,size:k}}),g("n",[],function(){var a=function(a,b){return b+a},b=function(a,b){return a+b},c=function(a,b){return a.substring(b)},d=function(a,b){return a.substring(0,a.length-b)};return{addToStart:a,addToEnd:b,removeFromStart:c,removeFromEnd:d}}),g("o",["h","j"],function(a,b){var c=function(a,b){return a.substr(0,b)},d=function(a,b){return a.substr(a.length-b,a.length)},e=function(b){return""===b?a.none():a.some(b.substr(0,1))},f=function(b){return""===b?a.none():a.some(b.substring(1))};return{first:c,last:d,head:e,tail:f}}),g("f",["n","o","j"],function(a,b,c){var d=function(a,b,c){if(""===b)return!0;if(a.length<b.length)return!1;var d=a.substr(c,c+b.length);return d===b},e=function(a,b){var c=function(a){var b=typeof a;return"string"===b||"number"===b};return a.replace(/\${([^{}]*)}/g,function(a,d){var e=b[d];return c(e)?e:a})},f=function(b,c){return l(b,c)?a.removeFromStart(b,c.length):b},g=function(b,c){return m(b,c)?a.removeFromEnd(b,c.length):b},h=function(b,c){return l(b,c)?b:a.addToStart(b,c)},i=function(b,c){return m(b,c)?b:a.addToEnd(b,c)},j=function(a,b){return a.indexOf(b)!==-1},k=function(a){return b.head(a).bind(function(c){return b.tail(a).map(function(a){return c.toUpperCase()+a})}).getOr(a)},l=function(a,b){return d(a,b,0)},m=function(a,b){return d(a,b,a.length-b.length)},n=function(a){return a.replace(/^\s+|\s+$/g,"")},o=function(a){return a.replace(/^\s+/g,"")},p=function(a){return a.replace(/\s+$/g,"")};return{supplant:e,startsWith:l,removeLeading:f,removeTrailing:g,ensureLeading:h,ensureTrailing:i,endsWith:m,contains:j,trim:n,lTrim:o,rTrim:p,capitalize:k}}),g("g",[],function(){var a=[{key:"advlist",name:"Advanced List"},{key:"anchor",name:"Anchor"},{key:"autolink",name:"Autolink"},{key:"autoresize",name:"Autoresize"},{key:"autosave",name:"Autosave"},{key:"bbcode",name:"BBCode"},{key:"charmap",name:"Character Map"},{key:"code",name:"Code"},{key:"codesample",name:"Code Sample"},{key:"colorpicker",name:"Color Picker"},{key:"compat3x",name:"3.x Compatibility"},{key:"contextmenu",name:"Context Menu"},{key:"directionality",name:"Directionality"},{key:"emoticons",name:"Emoticons"},{key:"fullpage",name:"Full Page"},{key:"fullscreen",name:"Full Screen"},{key:"help",name:"Help"},{key:"hr",name:"Horizontal Rule"},{key:"image",name:"Image"},{key:"imagetools",name:"Image Tools"},{key:"importcss",name:"Import CSS"},{key:"insertdatetime",name:"Insert Date/Time"},{key:"legacyoutput",name:"Legacy Output"},{key:"link",name:"Link"},{key:"lists",name:"Lists"},{key:"media",name:"Media"},{key:"nonbreaking",name:"Nonbreaking"},{key:"noneditable",name:"Noneditable"},{key:"pagebreak",name:"Page Break"},{key:"paste",name:"Paste"},{key:"preview",name:"Preview"},{key:"print",name:"Print"},{key:"save",name:"Save"},{key:"searchreplace",name:"Search and Replace"},{key:"spellchecker",name:"Spell Checker"},{key:"tabfocus",name:"Tab Focus"},{key:"table",name:"Table"},{key:"template",name:"Template"},{key:"textcolor",name:"Text Color"},{key:"textpattern",name:"Text Pattern"},{key:"toc",name:"Table of Contents"},{key:"visualblocks",name:"Visual Blocks"},{key:"visualchars",name:"Visual Characters"},{key:"wordcount",name:"Word Count"}];return{urls:a}}),g("8",["a","d","e","f","6","b","g"],function(a,b,c,d,e,f,g){var h=b.curry(d.supplant,'<a href="${url}" target="_blank" rel="noopener">${name}</a>'),i=function(b,c){return a.find(g.urls,function(a){return a.key===c}).fold(function(){var a=b.plugins[c].getMetadata;return"function"==typeof a?h(a()):c},function(a){return h({name:a.name,url:"https://www.tinymce.com/docs/plugins/"+a.key})})},j=function(d){var e=c.keys(d.plugins);return void 0===d.settings.forced_plugins?e:a.filter(e,b.not(b.curry(a.contains,d.settings.forced_plugins)))},k=function(b){var c=j(b),d=a.map(c,function(a){return"<li>"+i(b,a)+"</li>"}),e=d.length,g=d.join("");return"<p><b>"+f.translate(["Plugins installed ({0}):",e])+"</b></p><ul>"+g+"</ul>"},l=function(a){return{type:"container",html:'<div style="overflow-y: auto; overflow-x: hidden; max-height: 230px; height: 230px;" data-mce-tabstop="1" tabindex="-1">'+k(a)+"</div>",flex:1}},m=function(){return{type:"container",html:'<div style="padding: 10px; background: #e3e7f4; height: 100%;" data-mce-tabstop="1" tabindex="-1"><p><b>'+f.translate("Premium plugins:")+'</b></p><ul><li>PowerPaste</li><li>Spell Checker Pro</li><li>Accessibility Checker</li><li>Advanced Code Editor</li><li>Enhanced Media Embed</li><li>Link Checker</li></ul><br /><p style="float: right;"><a href="https://www.tinymce.com/pricing/?utm_campaign=editor_referral&utm_medium=help_dialog&utm_source=tinymce" target="_blank">'+f.translate("Learn more...")+"</a></p></div>",flex:1}},n=function(a){return{title:"Plugins",type:"container",style:"overflow-y: auto; overflow-x: hidden;",layout:"flex",padding:10,spacing:10,items:[l(a),m()]}};return{makeTab:n}}),g("9",["6","b"],function(a,b){var c=function(a,b){return 0===a.indexOf("@")?"X.X.X":a+"."+b},d=function(){var d=c(a.majorVersion,a.minorVersion),e='<a href="https://www.tinymce.com/docs/changelog/?utm_campaign=editor_referral&utm_medium=help_dialog&utm_source=tinymce" target="_blank">TinyMCE '+d+"</a>";return[{type:"label",html:b.translate(["You are using {0}",e])},{type:"spacer",flex:1},{text:"Close",onclick:function(){this.parent().parent().close()}}]};return{makeRow:d}}),g("4",["6","7","8","9"],function(a,b,c,d){var e=function(a,e){return function(){a.windowManager.open({title:"Help",bodyType:"tabpanel",layout:"flex",body:[b.makeTab(),c.makeTab(a,e)],buttons:d.makeRow(),onPostRender:function(){var a=this.getEl("title");a.innerHTML='<img src="'+e+'/img/logo.png" alt="TinyMCE Logo" style="display: inline-block; width: 200px; height: 50px">'}})}};return{open:e}}),g("2",["4"],function(a){var b=function(b,c){b.addCommand("mceHelp",a.open(b,c))};return{register:b}}),g("3",["4"],function(a){var b=function(b,c){b.addButton("help",{icon:"help",onclick:a.open(b,c)}),b.addMenuItem("Help",{text:"Help",icon:"help",context:"help",onclick:a.open(b,c)})};return{register:b}}),g("0",["1","2","3","4"],function(a,b,c,d){return a.add("help",function(a,d){c.register(a,d),b.register(a,d),a.shortcuts.add("Alt+0","Open help dialog","mceHelp")}),function(){}}),d("0")()}();
1
+ !function(){"use strict";var e,t,n,r,o,a,i=tinymce.util.Tools.resolve("tinymce.PluginManager"),l=function(e){return function(){return e}},c=function(a){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=new Array(arguments.length-1),n=1;n<arguments.length;n++)i[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var o=i.concat(n);return a.apply(null,o)}},u=l(!1),s=l(!0),f=u,m=s,d=function(){return p},p=(r={fold:function(e,t){return e()},is:f,isSome:f,isNone:m,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:n,orThunk:t,map:d,ap:d,each:function(){},bind:d,flatten:d,exists:f,forall:m,filter:d,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:l("none()")},Object.freeze&&Object.freeze(r),r),h=function(n){var e=function(){return n},t=function(){return o},r=function(e){return e(n)},o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:m,isNone:f,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:t,orThunk:t,map:function(e){return h(e(n))},ap:function(e){return e.fold(d,function(e){return h(e(n))})},each:function(e){e(n)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(n)?o:p},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(f,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},y={some:h,none:d,from:function(e){return null===e||e===undefined?p:h(e)}},g=(o="function",function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===o}),k=(a=Array.prototype.indexOf)===undefined?function(e,t){return x(e,t)}:function(e,t){return a.call(e,t)},v=function(e,t){return-1<k(e,t)},b=function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var a=e[o];r[o]=t(a,o,e)}return r},x=function(e,t){for(var n=0,r=e.length;n<r;++n)if(e[n]===t)return n;return-1},w=(Array.prototype.slice,g(Array.from)&&Array.from,tinymce.util.Tools.resolve("tinymce.util.I18n")),A=tinymce.util.Tools.resolve("tinymce.Env"),C=A.mac?"\u2318":"Ctrl",S=A.mac?"Ctrl + Alt":"Shift + Alt",O={shortcuts:[{shortcut:C+" + B",action:"Bold"},{shortcut:C+" + I",action:"Italic"},{shortcut:C+" + U",action:"Underline"},{shortcut:C+" + A",action:"Select all"},{shortcut:C+" + Y or "+C+" + Shift + Z",action:"Redo"},{shortcut:C+" + Z",action:"Undo"},{shortcut:S+" + 1",action:"Header 1"},{shortcut:S+" + 2",action:"Header 2"},{shortcut:S+" + 3",action:"Header 3"},{shortcut:S+" + 4",action:"Header 4"},{shortcut:S+" + 5",action:"Header 5"},{shortcut:S+" + 6",action:"Header 6"},{shortcut:S+" + 7",action:"Paragraph"},{shortcut:S+" + 8",action:"Div"},{shortcut:S+" + 9",action:"Address"},{shortcut:"Alt + F9",action:"Focus to menubar"},{shortcut:"Alt + F10",action:"Focus to toolbar"},{shortcut:"Alt + F11",action:"Focus to element path"},{shortcut:"Ctrl + Shift + P > Ctrl + Shift + P",action:"Focus to contextual toolbar"},{shortcut:C+" + K",action:"Insert link (if link plugin activated)"},{shortcut:C+" + S",action:"Save (if save plugin activated)"},{shortcut:C+" + F",action:"Find (if searchreplace plugin activated)"}]},P=function(){var e=b(O.shortcuts,function(e){return'<tr data-mce-tabstop="1" tabindex="-1" aria-label="Action: '+(t=e).action+", Shortcut: "+t.shortcut.replace(/Ctrl/g,"Control")+'"><td>'+w.translate(e.action)+"</td><td>"+e.shortcut+"</td></tr>";var t}).join("");return{title:"Handy Shortcuts",type:"container",style:"overflow-y: auto; overflow-x: hidden; max-height: 250px",items:[{type:"container",html:'<div><table class="mce-table-striped"><thead><th>'+w.translate("Action")+"</th><th>"+w.translate("Shortcut")+"</th></thead>"+e+"</table></div>"}]}},T=Object.keys,_=[{key:"advlist",name:"Advanced List"},{key:"anchor",name:"Anchor"},{key:"autolink",name:"Autolink"},{key:"autoresize",name:"Autoresize"},{key:"autosave",name:"Autosave"},{key:"bbcode",name:"BBCode"},{key:"charmap",name:"Character Map"},{key:"code",name:"Code"},{key:"codesample",name:"Code Sample"},{key:"colorpicker",name:"Color Picker"},{key:"compat3x",name:"3.x Compatibility"},{key:"contextmenu",name:"Context Menu"},{key:"directionality",name:"Directionality"},{key:"emoticons",name:"Emoticons"},{key:"fullpage",name:"Full Page"},{key:"fullscreen",name:"Full Screen"},{key:"help",name:"Help"},{key:"hr",name:"Horizontal Rule"},{key:"image",name:"Image"},{key:"imagetools",name:"Image Tools"},{key:"importcss",name:"Import CSS"},{key:"insertdatetime",name:"Insert Date/Time"},{key:"legacyoutput",name:"Legacy Output"},{key:"link",name:"Link"},{key:"lists",name:"Lists"},{key:"media",name:"Media"},{key:"nonbreaking",name:"Nonbreaking"},{key:"noneditable",name:"Noneditable"},{key:"pagebreak",name:"Page Break"},{key:"paste",name:"Paste"},{key:"preview",name:"Preview"},{key:"print",name:"Print"},{key:"save",name:"Save"},{key:"searchreplace",name:"Search and Replace"},{key:"spellchecker",name:"Spell Checker"},{key:"tabfocus",name:"Tab Focus"},{key:"table",name:"Table"},{key:"template",name:"Template"},{key:"textcolor",name:"Text Color"},{key:"textpattern",name:"Text Pattern"},{key:"toc",name:"Table of Contents"},{key:"visualblocks",name:"Visual Blocks"},{key:"visualchars",name:"Visual Characters"},{key:"wordcount",name:"Word Count"}],H=c(function(e,o){return e.replace(/\$\{([^{}]*)\}/g,function(e,t){var n,r=o[t];return"string"==(n=typeof r)||"number"===n?r.toString():e})},'<a href="${url}" target="_blank" rel="noopener">${name}</a>'),F=function(t,n){return function(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n,e))return y.some(o)}return y.none()}(_,function(e){return e.key===n}).fold(function(){var e=t.plugins[n].getMetadata;return"function"==typeof e?H(e()):n},function(e){return H({name:e.name,url:"https://www.tinymce.com/docs/plugins/"+e.key})})},M=function(t){var e,n,r,o=(r=T((e=t).plugins),e.settings.forced_plugins===undefined?r:function(e,t){for(var n=[],r=0,o=e.length;r<o;r++){var a=e[r];t(a,r,e)&&n.push(a)}return n}(r,(n=c(v,e.settings.forced_plugins),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,arguments)}))),a=b(o,function(e){return"<li>"+F(t,e)+"</li>"}),i=a.length,l=a.join("");return"<p><b>"+w.translate(["Plugins installed ({0}):",i])+"</b></p><ul>"+l+"</ul>"},E=function(e){return{title:"Plugins",type:"container",style:"overflow-y: auto; overflow-x: hidden;",layout:"flex",padding:10,spacing:10,items:[(t=e,{type:"container",html:'<div style="overflow-y: auto; overflow-x: hidden; max-height: 230px; height: 230px;" data-mce-tabstop="1" tabindex="-1">'+M(t)+"</div>",flex:1}),{type:"container",html:'<div style="padding: 10px; background: #e3e7f4; height: 100%;" data-mce-tabstop="1" tabindex="-1"><p><b>'+w.translate("Premium plugins:")+'</b></p><ul><li>PowerPaste</li><li>Spell Checker Pro</li><li>Accessibility Checker</li><li>Advanced Code Editor</li><li>Enhanced Media Embed</li><li>Link Checker</li></ul><br /><p style="float: right;"><a href="https://www.tinymce.com/pricing/?utm_campaign=editor_referral&utm_medium=help_dialog&utm_source=tinymce" target="_blank">'+w.translate("Learn more...")+"</a></p></div>",flex:1}]};var t},I=tinymce.util.Tools.resolve("tinymce.EditorManager"),j=function(){var e,t,n='<a href="https://www.tinymce.com/docs/changelog/?utm_campaign=editor_referral&utm_medium=help_dialog&utm_source=tinymce" target="_blank">TinyMCE '+(e=I.majorVersion,t=I.minorVersion,0===e.indexOf("@")?"X.X.X":e+"."+t)+"</a>";return[{type:"label",html:w.translate(["You are using {0}",n])},{type:"spacer",flex:1},{text:"Close",onclick:function(){this.parent().parent().close()}}]},L=function(e,t){return function(){e.windowManager.open({title:"Help",bodyType:"tabpanel",layout:"flex",body:[P(),E(e)],buttons:j(),onPostRender:function(){this.getEl("title").innerHTML='<img src="'+t+'/img/logo.png" alt="TinyMCE Logo" style="display: inline-block; width: 200px; height: 50px">'}})}},B=function(e,t){e.addCommand("mceHelp",L(e,t))},N=function(e,t){e.addButton("help",{icon:"help",onclick:L(e,t)}),e.addMenuItem("help",{text:"Help",icon:"help",context:"help",onclick:L(e,t)})};i.add("help",function(e,t){N(e,t),B(e,t),e.shortcuts.add("Alt+0","Open help dialog","mceHelp")})}();
@@ -1,195 +1,39 @@
1
1
  (function () {
2
+ var hr = (function () {
3
+ 'use strict';
2
4
 
3
- var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)}
5
+ var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
4
6
 
5
- // Used when there is no 'main' module.
6
- // The name is probably (hopefully) unique so minification removes for releases.
7
- var register_3795 = function (id) {
8
- var module = dem(id);
9
- var fragments = id.split('.');
10
- var target = Function('return this;')();
11
- for (var i = 0; i < fragments.length - 1; ++i) {
12
- if (target[fragments[i]] === undefined)
13
- target[fragments[i]] = {};
14
- target = target[fragments[i]];
15
- }
16
- target[fragments[fragments.length - 1]] = module;
17
- };
18
-
19
- var instantiate = function (id) {
20
- var actual = defs[id];
21
- var dependencies = actual.deps;
22
- var definition = actual.defn;
23
- var len = dependencies.length;
24
- var instances = new Array(len);
25
- for (var i = 0; i < len; ++i)
26
- instances[i] = dem(dependencies[i]);
27
- var defResult = definition.apply(null, instances);
28
- if (defResult === undefined)
29
- throw 'module [' + id + '] returned undefined';
30
- actual.instance = defResult;
31
- };
32
-
33
- var def = function (id, dependencies, definition) {
34
- if (typeof id !== 'string')
35
- throw 'module id must be a string';
36
- else if (dependencies === undefined)
37
- throw 'no dependencies for ' + id;
38
- else if (definition === undefined)
39
- throw 'no definition function for ' + id;
40
- defs[id] = {
41
- deps: dependencies,
42
- defn: definition,
43
- instance: undefined
7
+ var register = function (editor) {
8
+ editor.addCommand('InsertHorizontalRule', function () {
9
+ editor.execCommand('mceInsertContent', false, '<hr />');
10
+ });
44
11
  };
45
- };
46
-
47
- var dem = function (id) {
48
- var actual = defs[id];
49
- if (actual === undefined)
50
- throw 'module [' + id + '] was undefined';
51
- else if (actual.instance === undefined)
52
- instantiate(id);
53
- return actual.instance;
54
- };
55
-
56
- var req = function (ids, callback) {
57
- var len = ids.length;
58
- var instances = new Array(len);
59
- for (var i = 0; i < len; ++i)
60
- instances[i] = dem(ids[i]);
61
- callback.apply(null, instances);
62
- };
63
-
64
- var ephox = {};
65
-
66
- ephox.bolt = {
67
- module: {
68
- api: {
69
- define: def,
70
- require: req,
71
- demand: dem
72
- }
73
- }
74
- };
75
-
76
- var define = def;
77
- var require = req;
78
- var demand = dem;
79
- // this helps with minification when using a lot of global references
80
- var defineGlobal = function (id, ref) {
81
- define(id, [], function () { return ref; });
82
- };
83
- /*jsc
84
- ["tinymce.plugins.hr.Plugin","tinymce.core.PluginManager","tinymce.plugins.hr.api.Commands","tinymce.plugins.hr.ui.Buttons","global!tinymce.util.Tools.resolve"]
85
- jsc*/
86
- defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve);
87
- /**
88
- * ResolveGlobal.js
89
- *
90
- * Released under LGPL License.
91
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
92
- *
93
- * License: http://www.tinymce.com/license
94
- * Contributing: http://www.tinymce.com/contributing
95
- */
96
-
97
- define(
98
- 'tinymce.core.PluginManager',
99
- [
100
- 'global!tinymce.util.Tools.resolve'
101
- ],
102
- function (resolve) {
103
- return resolve('tinymce.PluginManager');
104
- }
105
- );
106
-
107
- /**
108
- * Commands.js
109
- *
110
- * Released under LGPL License.
111
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
112
- *
113
- * License: http://www.tinymce.com/license
114
- * Contributing: http://www.tinymce.com/contributing
115
- */
116
-
117
- define(
118
- 'tinymce.plugins.hr.api.Commands',
119
- [
120
- ],
121
- function () {
122
- var register = function (editor) {
123
- editor.addCommand('InsertHorizontalRule', function () {
124
- editor.execCommand('mceInsertContent', false, '<hr />');
125
- });
126
- };
127
-
128
- return {
129
- register: register
130
- };
131
- }
132
- );
133
- /**
134
- * Buttons.js
135
- *
136
- * Released under LGPL License.
137
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
138
- *
139
- * License: http://www.tinymce.com/license
140
- * Contributing: http://www.tinymce.com/contributing
141
- */
142
-
143
- define(
144
- 'tinymce.plugins.hr.ui.Buttons',
145
- [
146
- ],
147
- function () {
148
- var register = function (editor) {
149
- editor.addButton('hr', {
150
- icon: 'hr',
151
- tooltip: 'Horizontal line',
152
- cmd: 'InsertHorizontalRule'
153
- });
12
+ var $_7m2n29cmjm0ofyjv = { register: register };
154
13
 
155
- editor.addMenuItem('hr', {
156
- icon: 'hr',
157
- text: 'Horizontal line',
158
- cmd: 'InsertHorizontalRule',
159
- context: 'insert'
160
- });
161
- };
14
+ var register$1 = function (editor) {
15
+ editor.addButton('hr', {
16
+ icon: 'hr',
17
+ tooltip: 'Horizontal line',
18
+ cmd: 'InsertHorizontalRule'
19
+ });
20
+ editor.addMenuItem('hr', {
21
+ icon: 'hr',
22
+ text: 'Horizontal line',
23
+ cmd: 'InsertHorizontalRule',
24
+ context: 'insert'
25
+ });
26
+ };
27
+ var $_ubzb3cnjm0ofyjw = { register: register$1 };
162
28
 
163
- return {
164
- register: register
165
- };
29
+ global.add('hr', function (editor) {
30
+ $_7m2n29cmjm0ofyjv.register(editor);
31
+ $_ubzb3cnjm0ofyjw.register(editor);
32
+ });
33
+ function Plugin () {
166
34
  }
167
- );
168
- /**
169
- * Plugin.js
170
- *
171
- * Released under LGPL License.
172
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
173
- *
174
- * License: http://www.tinymce.com/license
175
- * Contributing: http://www.tinymce.com/contributing
176
- */
177
35
 
178
- define(
179
- 'tinymce.plugins.hr.Plugin',
180
- [
181
- 'tinymce.core.PluginManager',
182
- 'tinymce.plugins.hr.api.Commands',
183
- 'tinymce.plugins.hr.ui.Buttons'
184
- ],
185
- function (PluginManager, Commands, Buttons) {
186
- PluginManager.add('hr', function (editor) {
187
- Commands.register(editor);
188
- Buttons.register(editor);
189
- });
36
+ return Plugin;
190
37
 
191
- return function () { };
192
- }
193
- );
194
- dem('tinymce.plugins.hr.Plugin')();
38
+ }());
195
39
  })();
@@ -1 +1 @@
1
- !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e[f]=d(a[f]);b.apply(null,e)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("4",tinymce.util.Tools.resolve),g("1",["4"],function(a){return a("tinymce.PluginManager")}),g("2",[],function(){var a=function(a){a.addCommand("InsertHorizontalRule",function(){a.execCommand("mceInsertContent",!1,"<hr />")})};return{register:a}}),g("3",[],function(){var a=function(a){a.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),a.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})};return{register:a}}),g("0",["1","2","3"],function(a,b,c){return a.add("hr",function(a){b.register(a),c.register(a)}),function(){}}),d("0")()}();
1
+ !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"<hr />")})},o=function(n){n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})};n.add("hr",function(n){t(n),o(n)})}();
@@ -1,1572 +1,1211 @@
1
1
  (function () {
2
+ var image = (function () {
3
+ 'use strict';
2
4
 
3
- var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)}
5
+ var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
4
6
 
5
- // Used when there is no 'main' module.
6
- // The name is probably (hopefully) unique so minification removes for releases.
7
- var register_3795 = function (id) {
8
- var module = dem(id);
9
- var fragments = id.split('.');
10
- var target = Function('return this;')();
11
- for (var i = 0; i < fragments.length - 1; ++i) {
12
- if (target[fragments[i]] === undefined)
13
- target[fragments[i]] = {};
14
- target = target[fragments[i]];
15
- }
16
- target[fragments[fragments.length - 1]] = module;
17
- };
18
-
19
- var instantiate = function (id) {
20
- var actual = defs[id];
21
- var dependencies = actual.deps;
22
- var definition = actual.defn;
23
- var len = dependencies.length;
24
- var instances = new Array(len);
25
- for (var i = 0; i < len; ++i)
26
- instances[i] = dem(dependencies[i]);
27
- var defResult = definition.apply(null, instances);
28
- if (defResult === undefined)
29
- throw 'module [' + id + '] returned undefined';
30
- actual.instance = defResult;
31
- };
32
-
33
- var def = function (id, dependencies, definition) {
34
- if (typeof id !== 'string')
35
- throw 'module id must be a string';
36
- else if (dependencies === undefined)
37
- throw 'no dependencies for ' + id;
38
- else if (definition === undefined)
39
- throw 'no definition function for ' + id;
40
- defs[id] = {
41
- deps: dependencies,
42
- defn: definition,
43
- instance: undefined
44
- };
45
- };
46
-
47
- var dem = function (id) {
48
- var actual = defs[id];
49
- if (actual === undefined)
50
- throw 'module [' + id + '] was undefined';
51
- else if (actual.instance === undefined)
52
- instantiate(id);
53
- return actual.instance;
54
- };
55
-
56
- var req = function (ids, callback) {
57
- var len = ids.length;
58
- var instances = new Array(len);
59
- for (var i = 0; i < len; ++i)
60
- instances[i] = dem(ids[i]);
61
- callback.apply(null, instances);
62
- };
7
+ var hasDimensions = function (editor) {
8
+ return editor.settings.image_dimensions === false ? false : true;
9
+ };
10
+ var hasAdvTab = function (editor) {
11
+ return editor.settings.image_advtab === true ? true : false;
12
+ };
13
+ var getPrependUrl = function (editor) {
14
+ return editor.getParam('image_prepend_url', '');
15
+ };
16
+ var getClassList = function (editor) {
17
+ return editor.getParam('image_class_list');
18
+ };
19
+ var hasDescription = function (editor) {
20
+ return editor.settings.image_description === false ? false : true;
21
+ };
22
+ var hasImageTitle = function (editor) {
23
+ return editor.settings.image_title === true ? true : false;
24
+ };
25
+ var hasImageCaption = function (editor) {
26
+ return editor.settings.image_caption === true ? true : false;
27
+ };
28
+ var getImageList = function (editor) {
29
+ return editor.getParam('image_list', false);
30
+ };
31
+ var hasUploadUrl = function (editor) {
32
+ return editor.getParam('images_upload_url', false);
33
+ };
34
+ var hasUploadHandler = function (editor) {
35
+ return editor.getParam('images_upload_handler', false);
36
+ };
37
+ var getUploadUrl = function (editor) {
38
+ return editor.getParam('images_upload_url');
39
+ };
40
+ var getUploadHandler = function (editor) {
41
+ return editor.getParam('images_upload_handler');
42
+ };
43
+ var getUploadBasePath = function (editor) {
44
+ return editor.getParam('images_upload_base_path');
45
+ };
46
+ var getUploadCredentials = function (editor) {
47
+ return editor.getParam('images_upload_credentials');
48
+ };
49
+ var $_95hfkhcsjm0ofyka = {
50
+ hasDimensions: hasDimensions,
51
+ hasAdvTab: hasAdvTab,
52
+ getPrependUrl: getPrependUrl,
53
+ getClassList: getClassList,
54
+ hasDescription: hasDescription,
55
+ hasImageTitle: hasImageTitle,
56
+ hasImageCaption: hasImageCaption,
57
+ getImageList: getImageList,
58
+ hasUploadUrl: hasUploadUrl,
59
+ hasUploadHandler: hasUploadHandler,
60
+ getUploadUrl: getUploadUrl,
61
+ getUploadHandler: getUploadHandler,
62
+ getUploadBasePath: getUploadBasePath,
63
+ getUploadCredentials: getUploadCredentials
64
+ };
63
65
 
64
- var ephox = {};
66
+ var Global = typeof window !== 'undefined' ? window : Function('return this;')();
65
67
 
66
- ephox.bolt = {
67
- module: {
68
- api: {
69
- define: def,
70
- require: req,
71
- demand: dem
72
- }
73
- }
74
- };
68
+ var path = function (parts, scope) {
69
+ var o = scope !== undefined && scope !== null ? scope : Global;
70
+ for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)
71
+ o = o[parts[i]];
72
+ return o;
73
+ };
74
+ var resolve = function (p, scope) {
75
+ var parts = p.split('.');
76
+ return path(parts, scope);
77
+ };
75
78
 
76
- var define = def;
77
- var require = req;
78
- var demand = dem;
79
- // this helps with minification when using a lot of global references
80
- var defineGlobal = function (id, ref) {
81
- define(id, [], function () { return ref; });
82
- };
83
- /*jsc
84
- ["tinymce.plugins.image.Plugin","tinymce.core.PluginManager","tinymce.plugins.image.api.Commands","tinymce.plugins.image.core.FilterContent","tinymce.plugins.image.ui.Buttons","global!tinymce.util.Tools.resolve","tinymce.plugins.image.ui.Dialog","tinymce.core.util.Tools","global!Math","global!RegExp","tinymce.plugins.image.api.Settings","tinymce.plugins.image.core.Utils","tinymce.plugins.image.ui.AdvTab","tinymce.plugins.image.ui.MainTab","tinymce.plugins.image.ui.SizeManager","tinymce.plugins.image.ui.UploadTab","global!document","ephox.sand.api.FileReader","tinymce.core.util.Promise","tinymce.core.util.XHR","ephox.sand.api.URL","tinymce.core.ui.Factory","tinymce.plugins.image.core.Uploader","ephox.sand.util.Global","ephox.sand.api.XMLHttpRequest","global!window","ephox.katamari.api.Resolve","ephox.katamari.api.Global"]
85
- jsc*/
86
- defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve);
87
- /**
88
- * ResolveGlobal.js
89
- *
90
- * Released under LGPL License.
91
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
92
- *
93
- * License: http://www.tinymce.com/license
94
- * Contributing: http://www.tinymce.com/contributing
95
- */
79
+ var unsafe = function (name, scope) {
80
+ return resolve(name, scope);
81
+ };
82
+ var getOrDie = function (name, scope) {
83
+ var actual = unsafe(name, scope);
84
+ if (actual === undefined || actual === null)
85
+ throw name + ' not available on this browser';
86
+ return actual;
87
+ };
88
+ var $_6o5ihacvjm0ofykl = { getOrDie: getOrDie };
96
89
 
97
- define(
98
- 'tinymce.core.PluginManager',
99
- [
100
- 'global!tinymce.util.Tools.resolve'
101
- ],
102
- function (resolve) {
103
- return resolve('tinymce.PluginManager');
90
+ function FileReader () {
91
+ var f = $_6o5ihacvjm0ofykl.getOrDie('FileReader');
92
+ return new f();
104
93
  }
105
- );
106
94
 
107
- defineGlobal("global!Math", Math);
108
- defineGlobal("global!RegExp", RegExp);
109
- /**
110
- * ResolveGlobal.js
111
- *
112
- * Released under LGPL License.
113
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
114
- *
115
- * License: http://www.tinymce.com/license
116
- * Contributing: http://www.tinymce.com/contributing
117
- */
118
-
119
- define(
120
- 'tinymce.core.util.Tools',
121
- [
122
- 'global!tinymce.util.Tools.resolve'
123
- ],
124
- function (resolve) {
125
- return resolve('tinymce.util.Tools');
126
- }
127
- );
95
+ var global$1 = tinymce.util.Tools.resolve('tinymce.util.Promise');
128
96
 
129
- /**
130
- * Settings.js
131
- *
132
- * Released under LGPL License.
133
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
134
- *
135
- * License: http://www.tinymce.com/license
136
- * Contributing: http://www.tinymce.com/contributing
137
- */
97
+ var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');
138
98
 
139
- define(
140
- 'tinymce.plugins.image.api.Settings',
141
- [
142
- ],
143
- function () {
144
- var hasDimensions = function (editor) {
145
- return editor.settings.image_dimensions === false ? false : true;
146
- };
99
+ var global$3 = tinymce.util.Tools.resolve('tinymce.util.XHR');
147
100
 
148
- var hasAdvTab = function (editor) {
149
- return editor.settings.image_advtab === true ? true : false;
101
+ var parseIntAndGetMax = function (val1, val2) {
102
+ return Math.max(parseInt(val1, 10), parseInt(val2, 10));
103
+ };
104
+ var getImageSize = function (url, callback) {
105
+ var img = document.createElement('img');
106
+ function done(width, height) {
107
+ if (img.parentNode) {
108
+ img.parentNode.removeChild(img);
109
+ }
110
+ callback({
111
+ width: width,
112
+ height: height
113
+ });
114
+ }
115
+ img.onload = function () {
116
+ var width = parseIntAndGetMax(img.width, img.clientWidth);
117
+ var height = parseIntAndGetMax(img.height, img.clientHeight);
118
+ done(width, height);
119
+ };
120
+ img.onerror = function () {
121
+ done(0, 0);
122
+ };
123
+ var style = img.style;
124
+ style.visibility = 'hidden';
125
+ style.position = 'fixed';
126
+ style.bottom = style.left = '0px';
127
+ style.width = style.height = 'auto';
128
+ document.body.appendChild(img);
129
+ img.src = url;
130
+ };
131
+ var buildListItems = function (inputList, itemCallback, startItems) {
132
+ function appendItems(values, output) {
133
+ output = output || [];
134
+ global$2.each(values, function (item) {
135
+ var menuItem = { text: item.text || item.title };
136
+ if (item.menu) {
137
+ menuItem.menu = appendItems(item.menu);
138
+ } else {
139
+ menuItem.value = item.value;
140
+ itemCallback(menuItem);
141
+ }
142
+ output.push(menuItem);
143
+ });
144
+ return output;
145
+ }
146
+ return appendItems(inputList, startItems || []);
147
+ };
148
+ var removePixelSuffix = function (value) {
149
+ if (value) {
150
+ value = value.replace(/px$/, '');
151
+ }
152
+ return value;
153
+ };
154
+ var addPixelSuffix = function (value) {
155
+ if (value.length > 0 && /^[0-9]+$/.test(value)) {
156
+ value += 'px';
157
+ }
158
+ return value;
159
+ };
160
+ var mergeMargins = function (css) {
161
+ if (css.margin) {
162
+ var splitMargin = css.margin.split(' ');
163
+ switch (splitMargin.length) {
164
+ case 1:
165
+ css['margin-top'] = css['margin-top'] || splitMargin[0];
166
+ css['margin-right'] = css['margin-right'] || splitMargin[0];
167
+ css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];
168
+ css['margin-left'] = css['margin-left'] || splitMargin[0];
169
+ break;
170
+ case 2:
171
+ css['margin-top'] = css['margin-top'] || splitMargin[0];
172
+ css['margin-right'] = css['margin-right'] || splitMargin[1];
173
+ css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];
174
+ css['margin-left'] = css['margin-left'] || splitMargin[1];
175
+ break;
176
+ case 3:
177
+ css['margin-top'] = css['margin-top'] || splitMargin[0];
178
+ css['margin-right'] = css['margin-right'] || splitMargin[1];
179
+ css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];
180
+ css['margin-left'] = css['margin-left'] || splitMargin[1];
181
+ break;
182
+ case 4:
183
+ css['margin-top'] = css['margin-top'] || splitMargin[0];
184
+ css['margin-right'] = css['margin-right'] || splitMargin[1];
185
+ css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];
186
+ css['margin-left'] = css['margin-left'] || splitMargin[3];
187
+ }
188
+ delete css.margin;
189
+ }
190
+ return css;
191
+ };
192
+ var createImageList = function (editor, callback) {
193
+ var imageList = $_95hfkhcsjm0ofyka.getImageList(editor);
194
+ if (typeof imageList === 'string') {
195
+ global$3.send({
196
+ url: imageList,
197
+ success: function (text) {
198
+ callback(JSON.parse(text));
199
+ }
200
+ });
201
+ } else if (typeof imageList === 'function') {
202
+ imageList(callback);
203
+ } else {
204
+ callback(imageList);
205
+ }
206
+ };
207
+ var waitLoadImage = function (editor, data, imgElm) {
208
+ function selectImage() {
209
+ imgElm.onload = imgElm.onerror = null;
210
+ if (editor.selection) {
211
+ editor.selection.select(imgElm);
212
+ editor.nodeChanged();
213
+ }
214
+ }
215
+ imgElm.onload = function () {
216
+ if (!data.width && !data.height && $_95hfkhcsjm0ofyka.hasDimensions(editor)) {
217
+ editor.dom.setAttribs(imgElm, {
218
+ width: imgElm.clientWidth,
219
+ height: imgElm.clientHeight
220
+ });
221
+ }
222
+ selectImage();
150
223
  };
224
+ imgElm.onerror = selectImage;
225
+ };
226
+ var blobToDataUri = function (blob) {
227
+ return new global$1(function (resolve, reject) {
228
+ var reader = new FileReader();
229
+ reader.onload = function () {
230
+ resolve(reader.result);
231
+ };
232
+ reader.onerror = function () {
233
+ reject(FileReader.error.message);
234
+ };
235
+ reader.readAsDataURL(blob);
236
+ });
237
+ };
238
+ var $_5pkwh7ctjm0ofykd = {
239
+ getImageSize: getImageSize,
240
+ buildListItems: buildListItems,
241
+ removePixelSuffix: removePixelSuffix,
242
+ addPixelSuffix: addPixelSuffix,
243
+ mergeMargins: mergeMargins,
244
+ createImageList: createImageList,
245
+ waitLoadImage: waitLoadImage,
246
+ blobToDataUri: blobToDataUri
247
+ };
151
248
 
152
- var getPrependUrl = function (editor) {
153
- return editor.getParam('image_prepend_url', '');
154
- };
249
+ var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
155
250
 
156
- var getClassList = function (editor) {
157
- return editor.getParam('image_class_list');
251
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
252
+ var shallow = function (old, nu) {
253
+ return nu;
254
+ };
255
+ var baseMerge = function (merger) {
256
+ return function () {
257
+ var objects = new Array(arguments.length);
258
+ for (var i = 0; i < objects.length; i++)
259
+ objects[i] = arguments[i];
260
+ if (objects.length === 0)
261
+ throw new Error('Can\'t merge zero objects');
262
+ var ret = {};
263
+ for (var j = 0; j < objects.length; j++) {
264
+ var curObject = objects[j];
265
+ for (var key in curObject)
266
+ if (hasOwnProperty.call(curObject, key)) {
267
+ ret[key] = merger(ret[key], curObject[key]);
268
+ }
269
+ }
270
+ return ret;
158
271
  };
272
+ };
159
273
 
160
- var hasDescription = function (editor) {
161
- return editor.settings.image_description === false ? false : true;
162
- };
274
+ var merge = baseMerge(shallow);
163
275
 
164
- var hasImageTitle = function (editor) {
165
- return editor.settings.image_title === true ? true : false;
276
+ var DOM = global$4.DOM;
277
+ var getHspace = function (image) {
278
+ if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {
279
+ return $_5pkwh7ctjm0ofykd.removePixelSuffix(image.style.marginLeft);
280
+ } else {
281
+ return '';
282
+ }
283
+ };
284
+ var getVspace = function (image) {
285
+ if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {
286
+ return $_5pkwh7ctjm0ofykd.removePixelSuffix(image.style.marginTop);
287
+ } else {
288
+ return '';
289
+ }
290
+ };
291
+ var getBorder = function (image) {
292
+ if (image.style.borderWidth) {
293
+ return $_5pkwh7ctjm0ofykd.removePixelSuffix(image.style.borderWidth);
294
+ } else {
295
+ return '';
296
+ }
297
+ };
298
+ var getAttrib = function (image, name$$1) {
299
+ if (image.hasAttribute(name$$1)) {
300
+ return image.getAttribute(name$$1);
301
+ } else {
302
+ return '';
303
+ }
304
+ };
305
+ var getStyle = function (image, name$$1) {
306
+ return image.style[name$$1] ? image.style[name$$1] : '';
307
+ };
308
+ var hasCaption = function (image) {
309
+ return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';
310
+ };
311
+ var setAttrib = function (image, name$$1, value) {
312
+ image.setAttribute(name$$1, value);
313
+ };
314
+ var wrapInFigure = function (image) {
315
+ var figureElm = DOM.create('figure', { class: 'image' });
316
+ DOM.insertAfter(figureElm, image);
317
+ figureElm.appendChild(image);
318
+ figureElm.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption'));
319
+ figureElm.contentEditable = 'false';
320
+ };
321
+ var removeFigure = function (image) {
322
+ var figureElm = image.parentNode;
323
+ DOM.insertAfter(image, figureElm);
324
+ DOM.remove(figureElm);
325
+ };
326
+ var toggleCaption = function (image) {
327
+ if (hasCaption(image)) {
328
+ removeFigure(image);
329
+ } else {
330
+ wrapInFigure(image);
331
+ }
332
+ };
333
+ var normalizeStyle = function (image, normalizeCss) {
334
+ var attrValue = image.getAttribute('style');
335
+ var value = normalizeCss(attrValue !== null ? attrValue : '');
336
+ if (value.length > 0) {
337
+ image.setAttribute('style', value);
338
+ image.setAttribute('data-mce-style', value);
339
+ } else {
340
+ image.removeAttribute('style');
341
+ }
342
+ };
343
+ var setSize = function (name$$1, normalizeCss) {
344
+ return function (image, name$$1, value) {
345
+ if (image.style[name$$1]) {
346
+ image.style[name$$1] = $_5pkwh7ctjm0ofykd.addPixelSuffix(value);
347
+ normalizeStyle(image, normalizeCss);
348
+ } else {
349
+ setAttrib(image, name$$1, value);
350
+ }
166
351
  };
167
-
168
- var hasImageCaption = function (editor) {
169
- return editor.settings.image_caption === true ? true : false;
352
+ };
353
+ var getSize = function (image, name$$1) {
354
+ if (image.style[name$$1]) {
355
+ return $_5pkwh7ctjm0ofykd.removePixelSuffix(image.style[name$$1]);
356
+ } else {
357
+ return getAttrib(image, name$$1);
358
+ }
359
+ };
360
+ var setHspace = function (image, value) {
361
+ var pxValue = $_5pkwh7ctjm0ofykd.addPixelSuffix(value);
362
+ image.style.marginLeft = pxValue;
363
+ image.style.marginRight = pxValue;
364
+ };
365
+ var setVspace = function (image, value) {
366
+ var pxValue = $_5pkwh7ctjm0ofykd.addPixelSuffix(value);
367
+ image.style.marginTop = pxValue;
368
+ image.style.marginBottom = pxValue;
369
+ };
370
+ var setBorder = function (image, value) {
371
+ var pxValue = $_5pkwh7ctjm0ofykd.addPixelSuffix(value);
372
+ image.style.borderWidth = pxValue;
373
+ };
374
+ var setBorderStyle = function (image, value) {
375
+ image.style.borderStyle = value;
376
+ };
377
+ var getBorderStyle = function (image) {
378
+ return getStyle(image, 'borderStyle');
379
+ };
380
+ var isFigure = function (elm) {
381
+ return elm.nodeName === 'FIGURE';
382
+ };
383
+ var defaultData = function () {
384
+ return {
385
+ src: '',
386
+ alt: '',
387
+ title: '',
388
+ width: '',
389
+ height: '',
390
+ class: '',
391
+ style: '',
392
+ caption: false,
393
+ hspace: '',
394
+ vspace: '',
395
+ border: '',
396
+ borderStyle: ''
170
397
  };
171
-
172
- var getImageList = function (editor) {
173
- return editor.getParam('image_list', false);
398
+ };
399
+ var getStyleValue = function (normalizeCss, data) {
400
+ var image = document.createElement('img');
401
+ setAttrib(image, 'style', data.style);
402
+ if (getHspace(image) || data.hspace !== '') {
403
+ setHspace(image, data.hspace);
404
+ }
405
+ if (getVspace(image) || data.vspace !== '') {
406
+ setVspace(image, data.vspace);
407
+ }
408
+ if (getBorder(image) || data.border !== '') {
409
+ setBorder(image, data.border);
410
+ }
411
+ if (getBorderStyle(image) || data.borderStyle !== '') {
412
+ setBorderStyle(image, data.borderStyle);
413
+ }
414
+ return normalizeCss(image.getAttribute('style'));
415
+ };
416
+ var create = function (normalizeCss, data) {
417
+ var image = document.createElement('img');
418
+ write(normalizeCss, merge(data, { caption: false }), image);
419
+ setAttrib(image, 'alt', data.alt);
420
+ if (data.caption) {
421
+ var figure = DOM.create('figure', { class: 'image' });
422
+ figure.appendChild(image);
423
+ figure.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption'));
424
+ figure.contentEditable = 'false';
425
+ return figure;
426
+ } else {
427
+ return image;
428
+ }
429
+ };
430
+ var read = function (normalizeCss, image) {
431
+ return {
432
+ src: getAttrib(image, 'src'),
433
+ alt: getAttrib(image, 'alt'),
434
+ title: getAttrib(image, 'title'),
435
+ width: getSize(image, 'width'),
436
+ height: getSize(image, 'height'),
437
+ class: getAttrib(image, 'class'),
438
+ style: normalizeCss(getAttrib(image, 'style')),
439
+ caption: hasCaption(image),
440
+ hspace: getHspace(image),
441
+ vspace: getVspace(image),
442
+ border: getBorder(image),
443
+ borderStyle: getStyle(image, 'borderStyle')
174
444
  };
175
-
176
- var hasUploadUrl = function (editor) {
177
- return editor.getParam('images_upload_url', false);
445
+ };
446
+ var updateProp = function (image, oldData, newData, name$$1, set) {
447
+ if (newData[name$$1] !== oldData[name$$1]) {
448
+ set(image, name$$1, newData[name$$1]);
449
+ }
450
+ };
451
+ var normalized = function (set, normalizeCss) {
452
+ return function (image, name$$1, value) {
453
+ set(image, value);
454
+ normalizeStyle(image, normalizeCss);
178
455
  };
456
+ };
457
+ var write = function (normalizeCss, newData, image) {
458
+ var oldData = read(normalizeCss, image);
459
+ updateProp(image, oldData, newData, 'caption', function (image, _name, _value) {
460
+ return toggleCaption(image);
461
+ });
462
+ updateProp(image, oldData, newData, 'src', setAttrib);
463
+ updateProp(image, oldData, newData, 'alt', setAttrib);
464
+ updateProp(image, oldData, newData, 'title', setAttrib);
465
+ updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));
466
+ updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));
467
+ updateProp(image, oldData, newData, 'class', setAttrib);
468
+ updateProp(image, oldData, newData, 'style', normalized(function (image, value) {
469
+ return setAttrib(image, 'style', value);
470
+ }, normalizeCss));
471
+ updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));
472
+ updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));
473
+ updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));
474
+ updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss));
475
+ };
179
476
 
180
- var hasUploadHandler = function (editor) {
181
- return editor.getParam('images_upload_handler', false);
182
- };
477
+ var normalizeCss = function (editor, cssText) {
478
+ var css = editor.dom.styles.parse(cssText);
479
+ var mergedCss = $_5pkwh7ctjm0ofykd.mergeMargins(css);
480
+ var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));
481
+ return editor.dom.styles.serialize(compressed);
482
+ };
483
+ var getSelectedImage = function (editor) {
484
+ var imgElm = editor.selection.getNode();
485
+ var figureElm = editor.dom.getParent(imgElm, 'figure.image');
486
+ if (figureElm) {
487
+ return editor.dom.select('img', figureElm)[0];
488
+ }
489
+ if (imgElm && (imgElm.nodeName !== 'IMG' || imgElm.getAttribute('data-mce-object') || imgElm.getAttribute('data-mce-placeholder'))) {
490
+ return null;
491
+ }
492
+ return imgElm;
493
+ };
494
+ var splitTextBlock = function (editor, figure) {
495
+ var dom = editor.dom;
496
+ var textBlock = dom.getParent(figure.parentNode, function (node) {
497
+ return editor.schema.getTextBlockElements()[node.nodeName];
498
+ });
499
+ if (textBlock) {
500
+ return dom.split(textBlock, figure);
501
+ } else {
502
+ return figure;
503
+ }
504
+ };
505
+ var readImageDataFromSelection = function (editor) {
506
+ var image = getSelectedImage(editor);
507
+ return image ? read(function (css) {
508
+ return normalizeCss(editor, css);
509
+ }, image) : defaultData();
510
+ };
511
+ var insertImageAtCaret = function (editor, data) {
512
+ var elm = create(function (css) {
513
+ return normalizeCss(editor, css);
514
+ }, data);
515
+ editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');
516
+ editor.focus();
517
+ editor.selection.setContent(elm.outerHTML);
518
+ var insertedElm = editor.dom.select('*[data-mce-id="__mcenew"]')[0];
519
+ editor.dom.setAttrib(insertedElm, 'data-mce-id', null);
520
+ if (isFigure(insertedElm)) {
521
+ var figure = splitTextBlock(editor, insertedElm);
522
+ editor.selection.select(figure);
523
+ } else {
524
+ editor.selection.select(insertedElm);
525
+ }
526
+ };
527
+ var syncSrcAttr = function (editor, image) {
528
+ editor.dom.setAttrib(image, 'src', image.getAttribute('src'));
529
+ };
530
+ var deleteImage = function (editor, image) {
531
+ if (image) {
532
+ var elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;
533
+ editor.dom.remove(elm);
534
+ editor.focus();
535
+ editor.nodeChanged();
536
+ if (editor.dom.isEmpty(editor.getBody())) {
537
+ editor.setContent('');
538
+ editor.selection.setCursorLocation();
539
+ }
540
+ }
541
+ };
542
+ var writeImageDataToSelection = function (editor, data) {
543
+ var image = getSelectedImage(editor);
544
+ write(function (css) {
545
+ return normalizeCss(editor, css);
546
+ }, data, image);
547
+ syncSrcAttr(editor, image);
548
+ if (isFigure(image.parentNode)) {
549
+ var figure = image.parentNode;
550
+ splitTextBlock(editor, figure);
551
+ editor.selection.select(image.parentNode);
552
+ } else {
553
+ editor.selection.select(image);
554
+ $_5pkwh7ctjm0ofykd.waitLoadImage(editor, data, image);
555
+ }
556
+ };
557
+ var insertOrUpdateImage = function (editor, data) {
558
+ var image = getSelectedImage(editor);
559
+ if (image) {
560
+ if (data.src) {
561
+ writeImageDataToSelection(editor, data);
562
+ } else {
563
+ deleteImage(editor, image);
564
+ }
565
+ } else if (data.src) {
566
+ insertImageAtCaret(editor, data);
567
+ }
568
+ };
183
569
 
184
- var getUploadUrl = function (editor) {
185
- return editor.getParam('images_upload_url');
570
+ var updateVSpaceHSpaceBorder = function (editor) {
571
+ return function (evt) {
572
+ var dom = editor.dom;
573
+ var rootControl = evt.control.rootControl;
574
+ if (!$_95hfkhcsjm0ofyka.hasAdvTab(editor)) {
575
+ return;
576
+ }
577
+ var data = rootControl.toJSON();
578
+ var css = dom.parseStyle(data.style);
579
+ rootControl.find('#vspace').value('');
580
+ rootControl.find('#hspace').value('');
581
+ css = $_5pkwh7ctjm0ofykd.mergeMargins(css);
582
+ if (css['margin-top'] && css['margin-bottom'] || css['margin-right'] && css['margin-left']) {
583
+ if (css['margin-top'] === css['margin-bottom']) {
584
+ rootControl.find('#vspace').value($_5pkwh7ctjm0ofykd.removePixelSuffix(css['margin-top']));
585
+ } else {
586
+ rootControl.find('#vspace').value('');
587
+ }
588
+ if (css['margin-right'] === css['margin-left']) {
589
+ rootControl.find('#hspace').value($_5pkwh7ctjm0ofykd.removePixelSuffix(css['margin-right']));
590
+ } else {
591
+ rootControl.find('#hspace').value('');
592
+ }
593
+ }
594
+ if (css['border-width']) {
595
+ rootControl.find('#border').value($_5pkwh7ctjm0ofykd.removePixelSuffix(css['border-width']));
596
+ } else {
597
+ rootControl.find('#border').value('');
598
+ }
599
+ if (css['border-style']) {
600
+ rootControl.find('#borderStyle').value(css['border-style']);
601
+ } else {
602
+ rootControl.find('#borderStyle').value('');
603
+ }
604
+ rootControl.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))));
186
605
  };
187
-
188
- var getUploadHandler = function (editor) {
189
- return editor.getParam('images_upload_handler');
606
+ };
607
+ var updateStyle = function (editor, win) {
608
+ win.find('#style').each(function (ctrl) {
609
+ var value = getStyleValue(function (css) {
610
+ return normalizeCss(editor, css);
611
+ }, merge(defaultData(), win.toJSON()));
612
+ ctrl.value(value);
613
+ });
614
+ };
615
+ var makeTab = function (editor) {
616
+ return {
617
+ title: 'Advanced',
618
+ type: 'form',
619
+ pack: 'start',
620
+ items: [
621
+ {
622
+ label: 'Style',
623
+ name: 'style',
624
+ type: 'textbox',
625
+ onchange: updateVSpaceHSpaceBorder(editor)
626
+ },
627
+ {
628
+ type: 'form',
629
+ layout: 'grid',
630
+ packV: 'start',
631
+ columns: 2,
632
+ padding: 0,
633
+ defaults: {
634
+ type: 'textbox',
635
+ maxWidth: 50,
636
+ onchange: function (evt) {
637
+ updateStyle(editor, evt.control.rootControl);
638
+ }
639
+ },
640
+ items: [
641
+ {
642
+ label: 'Vertical space',
643
+ name: 'vspace'
644
+ },
645
+ {
646
+ label: 'Border width',
647
+ name: 'border'
648
+ },
649
+ {
650
+ label: 'Horizontal space',
651
+ name: 'hspace'
652
+ },
653
+ {
654
+ label: 'Border style',
655
+ type: 'listbox',
656
+ name: 'borderStyle',
657
+ width: 90,
658
+ maxWidth: 90,
659
+ onselect: function (evt) {
660
+ updateStyle(editor, evt.control.rootControl);
661
+ },
662
+ values: [
663
+ {
664
+ text: 'Select...',
665
+ value: ''
666
+ },
667
+ {
668
+ text: 'Solid',
669
+ value: 'solid'
670
+ },
671
+ {
672
+ text: 'Dotted',
673
+ value: 'dotted'
674
+ },
675
+ {
676
+ text: 'Dashed',
677
+ value: 'dashed'
678
+ },
679
+ {
680
+ text: 'Double',
681
+ value: 'double'
682
+ },
683
+ {
684
+ text: 'Groove',
685
+ value: 'groove'
686
+ },
687
+ {
688
+ text: 'Ridge',
689
+ value: 'ridge'
690
+ },
691
+ {
692
+ text: 'Inset',
693
+ value: 'inset'
694
+ },
695
+ {
696
+ text: 'Outset',
697
+ value: 'outset'
698
+ },
699
+ {
700
+ text: 'None',
701
+ value: 'none'
702
+ },
703
+ {
704
+ text: 'Hidden',
705
+ value: 'hidden'
706
+ }
707
+ ]
708
+ }
709
+ ]
710
+ }
711
+ ]
190
712
  };
713
+ };
714
+ var $_bc3dkmd2jm0ofylg = { makeTab: makeTab };
191
715
 
192
- var getUploadBasePath = function (editor) {
193
- return editor.getParam('images_upload_base_path');
716
+ var doSyncSize = function (widthCtrl, heightCtrl) {
717
+ widthCtrl.state.set('oldVal', widthCtrl.value());
718
+ heightCtrl.state.set('oldVal', heightCtrl.value());
719
+ };
720
+ var doSizeControls = function (win, f) {
721
+ var widthCtrl = win.find('#width')[0];
722
+ var heightCtrl = win.find('#height')[0];
723
+ var constrained = win.find('#constrain')[0];
724
+ if (widthCtrl && heightCtrl && constrained) {
725
+ f(widthCtrl, heightCtrl, constrained.checked());
726
+ }
727
+ };
728
+ var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) {
729
+ var oldWidth = widthCtrl.state.get('oldVal');
730
+ var oldHeight = heightCtrl.state.get('oldVal');
731
+ var newWidth = widthCtrl.value();
732
+ var newHeight = heightCtrl.value();
733
+ if (isContrained && oldWidth && oldHeight && newWidth && newHeight) {
734
+ if (newWidth !== oldWidth) {
735
+ newHeight = Math.round(newWidth / oldWidth * newHeight);
736
+ if (!isNaN(newHeight)) {
737
+ heightCtrl.value(newHeight);
738
+ }
739
+ } else {
740
+ newWidth = Math.round(newHeight / oldHeight * newWidth);
741
+ if (!isNaN(newWidth)) {
742
+ widthCtrl.value(newWidth);
743
+ }
744
+ }
745
+ }
746
+ doSyncSize(widthCtrl, heightCtrl);
747
+ };
748
+ var syncSize = function (win) {
749
+ doSizeControls(win, doSyncSize);
750
+ };
751
+ var updateSize = function (win) {
752
+ doSizeControls(win, doUpdateSize);
753
+ };
754
+ var createUi = function () {
755
+ var recalcSize = function (evt) {
756
+ updateSize(evt.control.rootControl);
194
757
  };
195
-
196
- var getUploadCredentials = function (editor) {
197
- return editor.getParam('images_upload_credentials');
758
+ return {
759
+ type: 'container',
760
+ label: 'Dimensions',
761
+ layout: 'flex',
762
+ align: 'center',
763
+ spacing: 5,
764
+ items: [
765
+ {
766
+ name: 'width',
767
+ type: 'textbox',
768
+ maxLength: 5,
769
+ size: 5,
770
+ onchange: recalcSize,
771
+ ariaLabel: 'Width'
772
+ },
773
+ {
774
+ type: 'label',
775
+ text: 'x'
776
+ },
777
+ {
778
+ name: 'height',
779
+ type: 'textbox',
780
+ maxLength: 5,
781
+ size: 5,
782
+ onchange: recalcSize,
783
+ ariaLabel: 'Height'
784
+ },
785
+ {
786
+ name: 'constrain',
787
+ type: 'checkbox',
788
+ checked: true,
789
+ text: 'Constrain proportions'
790
+ }
791
+ ]
198
792
  };
793
+ };
794
+ var $_4gs98qd9jm0ofym5 = {
795
+ createUi: createUi,
796
+ syncSize: syncSize,
797
+ updateSize: updateSize
798
+ };
199
799
 
800
+ var onSrcChange = function (evt, editor) {
801
+ var srcURL, prependURL, absoluteURLPattern;
802
+ var meta = evt.meta || {};
803
+ var control = evt.control;
804
+ var rootControl = control.rootControl;
805
+ var imageListCtrl = rootControl.find('#image-list')[0];
806
+ if (imageListCtrl) {
807
+ imageListCtrl.value(editor.convertURL(control.value(), 'src'));
808
+ }
809
+ global$2.each(meta, function (value, key) {
810
+ rootControl.find('#' + key).value(value);
811
+ });
812
+ if (!meta.width && !meta.height) {
813
+ srcURL = editor.convertURL(control.value(), 'src');
814
+ prependURL = $_95hfkhcsjm0ofyka.getPrependUrl(editor);
815
+ absoluteURLPattern = new RegExp('^(?:[a-z]+:)?//', 'i');
816
+ if (prependURL && !absoluteURLPattern.test(srcURL) && srcURL.substring(0, prependURL.length) !== prependURL) {
817
+ srcURL = prependURL + srcURL;
818
+ }
819
+ control.value(srcURL);
820
+ $_5pkwh7ctjm0ofykd.getImageSize(editor.documentBaseURI.toAbsolute(control.value()), function (data) {
821
+ if (data.width && data.height && $_95hfkhcsjm0ofyka.hasDimensions(editor)) {
822
+ rootControl.find('#width').value(data.width);
823
+ rootControl.find('#height').value(data.height);
824
+ $_4gs98qd9jm0ofym5.syncSize(rootControl);
825
+ }
826
+ });
827
+ }
828
+ };
829
+ var onBeforeCall = function (evt) {
830
+ evt.meta = evt.control.rootControl.toJSON();
831
+ };
832
+ var getGeneralItems = function (editor, imageListCtrl) {
833
+ var generalFormItems = [
834
+ {
835
+ name: 'src',
836
+ type: 'filepicker',
837
+ filetype: 'image',
838
+ label: 'Source',
839
+ autofocus: true,
840
+ onchange: function (evt) {
841
+ onSrcChange(evt, editor);
842
+ },
843
+ onbeforecall: onBeforeCall
844
+ },
845
+ imageListCtrl
846
+ ];
847
+ if ($_95hfkhcsjm0ofyka.hasDescription(editor)) {
848
+ generalFormItems.push({
849
+ name: 'alt',
850
+ type: 'textbox',
851
+ label: 'Image description'
852
+ });
853
+ }
854
+ if ($_95hfkhcsjm0ofyka.hasImageTitle(editor)) {
855
+ generalFormItems.push({
856
+ name: 'title',
857
+ type: 'textbox',
858
+ label: 'Image Title'
859
+ });
860
+ }
861
+ if ($_95hfkhcsjm0ofyka.hasDimensions(editor)) {
862
+ generalFormItems.push($_4gs98qd9jm0ofym5.createUi());
863
+ }
864
+ if ($_95hfkhcsjm0ofyka.getClassList(editor)) {
865
+ generalFormItems.push({
866
+ name: 'class',
867
+ type: 'listbox',
868
+ label: 'Class',
869
+ values: $_5pkwh7ctjm0ofykd.buildListItems($_95hfkhcsjm0ofyka.getClassList(editor), function (item) {
870
+ if (item.value) {
871
+ item.textStyle = function () {
872
+ return editor.formatter.getCssText({
873
+ inline: 'img',
874
+ classes: [item.value]
875
+ });
876
+ };
877
+ }
878
+ })
879
+ });
880
+ }
881
+ if ($_95hfkhcsjm0ofyka.hasImageCaption(editor)) {
882
+ generalFormItems.push({
883
+ name: 'caption',
884
+ type: 'checkbox',
885
+ label: 'Caption'
886
+ });
887
+ }
888
+ return generalFormItems;
889
+ };
890
+ var makeTab$1 = function (editor, imageListCtrl) {
200
891
  return {
201
- hasDimensions: hasDimensions,
202
- hasAdvTab: hasAdvTab,
203
- getPrependUrl: getPrependUrl,
204
- getClassList: getClassList,
205
- hasDescription: hasDescription,
206
- hasImageTitle: hasImageTitle,
207
- hasImageCaption: hasImageCaption,
208
- getImageList: getImageList,
209
- hasUploadUrl: hasUploadUrl,
210
- hasUploadHandler: hasUploadHandler,
211
- getUploadUrl: getUploadUrl,
212
- getUploadHandler: getUploadHandler,
213
- getUploadBasePath: getUploadBasePath,
214
- getUploadCredentials: getUploadCredentials
892
+ title: 'General',
893
+ type: 'form',
894
+ items: getGeneralItems(editor, imageListCtrl)
215
895
  };
216
- }
217
- );
218
- defineGlobal("global!document", document);
219
- define(
220
- 'ephox.katamari.api.Global',
221
-
222
- [
223
- ],
224
-
225
- function () {
226
- // Use window object as the global if it's available since CSP will block script evals
227
- var global = typeof window !== 'undefined' ? window : Function('return this;')();
228
- return global;
229
- }
230
- );
896
+ };
897
+ var $_g4z4xud8jm0ofym1 = {
898
+ makeTab: makeTab$1,
899
+ getGeneralItems: getGeneralItems
900
+ };
231
901
 
902
+ var url = function () {
903
+ return $_6o5ihacvjm0ofykl.getOrDie('URL');
904
+ };
905
+ var createObjectURL = function (blob) {
906
+ return url().createObjectURL(blob);
907
+ };
908
+ var revokeObjectURL = function (u) {
909
+ url().revokeObjectURL(u);
910
+ };
911
+ var $_cuu6medbjm0ofymc = {
912
+ createObjectURL: createObjectURL,
913
+ revokeObjectURL: revokeObjectURL
914
+ };
232
915
 
233
- define(
234
- 'ephox.katamari.api.Resolve',
916
+ var global$5 = tinymce.util.Tools.resolve('tinymce.ui.Factory');
235
917
 
236
- [
237
- 'ephox.katamari.api.Global'
238
- ],
918
+ function XMLHttpRequest () {
919
+ var f = $_6o5ihacvjm0ofykl.getOrDie('XMLHttpRequest');
920
+ return new f();
921
+ }
239
922
 
240
- function (Global) {
241
- /** path :: ([String], JsObj?) -> JsObj */
242
- var path = function (parts, scope) {
243
- var o = scope !== undefined ? scope : Global;
244
- for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)
245
- o = o[parts[i]];
246
- return o;
923
+ var noop = function () {
924
+ };
925
+ var pathJoin = function (path1, path2) {
926
+ if (path1) {
927
+ return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, '');
928
+ }
929
+ return path2;
930
+ };
931
+ function Uploader (settings) {
932
+ var defaultHandler = function (blobInfo, success, failure, progress) {
933
+ var xhr, formData;
934
+ xhr = new XMLHttpRequest();
935
+ xhr.open('POST', settings.url);
936
+ xhr.withCredentials = settings.credentials;
937
+ xhr.upload.onprogress = function (e) {
938
+ progress(e.loaded / e.total * 100);
939
+ };
940
+ xhr.onerror = function () {
941
+ failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);
942
+ };
943
+ xhr.onload = function () {
944
+ var json;
945
+ if (xhr.status < 200 || xhr.status >= 300) {
946
+ failure('HTTP Error: ' + xhr.status);
947
+ return;
948
+ }
949
+ json = JSON.parse(xhr.responseText);
950
+ if (!json || typeof json.location !== 'string') {
951
+ failure('Invalid JSON: ' + xhr.responseText);
952
+ return;
953
+ }
954
+ success(pathJoin(settings.basePath, json.location));
955
+ };
956
+ formData = new FormData();
957
+ formData.append('file', blobInfo.blob(), blobInfo.filename());
958
+ xhr.send(formData);
959
+ };
960
+ var uploadBlob = function (blobInfo, handler) {
961
+ return new global$1(function (resolve, reject) {
962
+ try {
963
+ handler(blobInfo, resolve, reject, noop);
964
+ } catch (ex) {
965
+ reject(ex.message);
966
+ }
967
+ });
247
968
  };
248
-
249
- /** resolve :: (String, JsObj?) -> JsObj */
250
- var resolve = function (p, scope) {
251
- var parts = p.split('.');
252
- return path(parts, scope);
969
+ var isDefaultHandler = function (handler) {
970
+ return handler === defaultHandler;
253
971
  };
254
-
255
- /** step :: (JsObj, String) -> JsObj */
256
- var step = function (o, part) {
257
- if (o[part] === undefined || o[part] === null)
258
- o[part] = {};
259
- return o[part];
972
+ var upload = function (blobInfo) {
973
+ return !settings.url && isDefaultHandler(settings.handler) ? global$1.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler);
260
974
  };
975
+ settings = global$2.extend({
976
+ credentials: false,
977
+ handler: defaultHandler
978
+ }, settings);
979
+ return { upload: upload };
980
+ }
261
981
 
262
- /** forge :: ([String], JsObj?) -> JsObj */
263
- var forge = function (parts, target) {
264
- var o = target !== undefined ? target : Global;
265
- for (var i = 0; i < parts.length; ++i)
266
- o = step(o, parts[i]);
267
- return o;
982
+ var onFileInput = function (editor) {
983
+ return function (evt) {
984
+ var Throbber = global$5.get('Throbber');
985
+ var rootControl = evt.control.rootControl;
986
+ var throbber = new Throbber(rootControl.getEl());
987
+ var file = evt.control.value();
988
+ var blobUri = $_cuu6medbjm0ofymc.createObjectURL(file);
989
+ var uploader = Uploader({
990
+ url: $_95hfkhcsjm0ofyka.getUploadUrl(editor),
991
+ basePath: $_95hfkhcsjm0ofyka.getUploadBasePath(editor),
992
+ credentials: $_95hfkhcsjm0ofyka.getUploadCredentials(editor),
993
+ handler: $_95hfkhcsjm0ofyka.getUploadHandler(editor)
994
+ });
995
+ var finalize = function () {
996
+ throbber.hide();
997
+ $_cuu6medbjm0ofymc.revokeObjectURL(blobUri);
998
+ };
999
+ throbber.show();
1000
+ return $_5pkwh7ctjm0ofykd.blobToDataUri(file).then(function (dataUrl) {
1001
+ var blobInfo = editor.editorUpload.blobCache.create({
1002
+ blob: file,
1003
+ blobUri: blobUri,
1004
+ name: file.name ? file.name.replace(/\.[^\.]+$/, '') : null,
1005
+ base64: dataUrl.split(',')[1]
1006
+ });
1007
+ return uploader.upload(blobInfo).then(function (url) {
1008
+ var src = rootControl.find('#src');
1009
+ src.value(url);
1010
+ rootControl.find('tabpanel')[0].activateTab(0);
1011
+ src.fire('change');
1012
+ finalize();
1013
+ return url;
1014
+ });
1015
+ }).catch(function (err) {
1016
+ editor.windowManager.alert(err);
1017
+ finalize();
1018
+ });
268
1019
  };
269
-
270
- /** namespace :: (String, JsObj?) -> JsObj */
271
- var namespace = function (name, target) {
272
- var parts = name.split('.');
273
- return forge(parts, target);
1020
+ };
1021
+ var acceptExts = '.jpg,.jpeg,.png,.gif';
1022
+ var makeTab$2 = function (editor) {
1023
+ return {
1024
+ title: 'Upload',
1025
+ type: 'form',
1026
+ layout: 'flex',
1027
+ direction: 'column',
1028
+ align: 'stretch',
1029
+ padding: '20 20 20 20',
1030
+ items: [
1031
+ {
1032
+ type: 'container',
1033
+ layout: 'flex',
1034
+ direction: 'column',
1035
+ align: 'center',
1036
+ spacing: 10,
1037
+ items: [
1038
+ {
1039
+ text: 'Browse for an image',
1040
+ type: 'browsebutton',
1041
+ accept: acceptExts,
1042
+ onchange: onFileInput(editor)
1043
+ },
1044
+ {
1045
+ text: 'OR',
1046
+ type: 'label'
1047
+ }
1048
+ ]
1049
+ },
1050
+ {
1051
+ text: 'Drop an image here',
1052
+ type: 'dropzone',
1053
+ accept: acceptExts,
1054
+ height: 100,
1055
+ onchange: onFileInput(editor)
1056
+ }
1057
+ ]
274
1058
  };
1059
+ };
1060
+ var $_a17nn8dajm0ofym8 = { makeTab: makeTab$2 };
275
1061
 
276
- return {
277
- path: path,
278
- resolve: resolve,
279
- forge: forge,
280
- namespace: namespace
1062
+ var curry = function (f) {
1063
+ var x = [];
1064
+ for (var _i = 1; _i < arguments.length; _i++) {
1065
+ x[_i - 1] = arguments[_i];
1066
+ }
1067
+ var args = new Array(arguments.length - 1);
1068
+ for (var i = 1; i < arguments.length; i++)
1069
+ args[i - 1] = arguments[i];
1070
+ return function () {
1071
+ var x = [];
1072
+ for (var _i = 0; _i < arguments.length; _i++) {
1073
+ x[_i] = arguments[_i];
1074
+ }
1075
+ var newArgs = new Array(arguments.length);
1076
+ for (var j = 0; j < newArgs.length; j++)
1077
+ newArgs[j] = arguments[j];
1078
+ var all = args.concat(newArgs);
1079
+ return f.apply(null, all);
281
1080
  };
282
- }
283
- );
1081
+ };
284
1082
 
285
-
286
- define(
287
- 'ephox.sand.util.Global',
288
-
289
- [
290
- 'ephox.katamari.api.Resolve'
291
- ],
292
-
293
- function (Resolve) {
294
- var unsafe = function (name, scope) {
295
- return Resolve.resolve(name, scope);
296
- };
297
-
298
- var getOrDie = function (name, scope) {
299
- var actual = unsafe(name, scope);
300
-
301
- if (actual === undefined) throw name + ' not available on this browser';
302
- return actual;
303
- };
304
-
305
- return {
306
- getOrDie: getOrDie
307
- };
308
- }
309
- );
310
- define(
311
- 'ephox.sand.api.FileReader',
312
-
313
- [
314
- 'ephox.sand.util.Global'
315
- ],
316
-
317
- function (Global) {
318
- /*
319
- * IE10 and above per
320
- * https://developer.mozilla.org/en-US/docs/Web/API/FileReader
321
- */
322
- return function () {
323
- var f = Global.getOrDie('FileReader');
324
- return new f();
325
- };
326
- }
327
- );
328
- /**
329
- * ResolveGlobal.js
330
- *
331
- * Released under LGPL License.
332
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
333
- *
334
- * License: http://www.tinymce.com/license
335
- * Contributing: http://www.tinymce.com/contributing
336
- */
337
-
338
- define(
339
- 'tinymce.core.util.Promise',
340
- [
341
- 'global!tinymce.util.Tools.resolve'
342
- ],
343
- function (resolve) {
344
- return resolve('tinymce.util.Promise');
345
- }
346
- );
347
-
348
- /**
349
- * ResolveGlobal.js
350
- *
351
- * Released under LGPL License.
352
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
353
- *
354
- * License: http://www.tinymce.com/license
355
- * Contributing: http://www.tinymce.com/contributing
356
- */
357
-
358
- define(
359
- 'tinymce.core.util.XHR',
360
- [
361
- 'global!tinymce.util.Tools.resolve'
362
- ],
363
- function (resolve) {
364
- return resolve('tinymce.util.XHR');
365
- }
366
- );
367
-
368
- /**
369
- * Utils.js
370
- *
371
- * Released under LGPL License.
372
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
373
- *
374
- * License: http://www.tinymce.com/license
375
- * Contributing: http://www.tinymce.com/contributing
376
- */
377
-
378
- /**
379
- * @class tinymce.image.core.Utils
380
- * @private
381
- */
382
- define(
383
- 'tinymce.plugins.image.core.Utils',
384
- [
385
- 'global!Math',
386
- 'global!document',
387
- 'ephox.sand.api.FileReader',
388
- 'tinymce.core.util.Promise',
389
- 'tinymce.core.util.Tools',
390
- 'tinymce.core.util.XHR',
391
- 'tinymce.plugins.image.api.Settings'
392
- ],
393
- function (Math, document, FileReader, Promise, Tools, XHR, Settings) {
394
- var parseIntAndGetMax = function (val1, val2) {
395
- return Math.max(parseInt(val1, 10), parseInt(val2, 10));
396
- };
397
-
398
- var getImageSize = function (url, callback) {
399
- var img = document.createElement('img');
400
-
401
- function done(width, height) {
402
- if (img.parentNode) {
403
- img.parentNode.removeChild(img);
404
- }
405
-
406
- callback({ width: width, height: height });
407
- }
408
-
409
- img.onload = function () {
410
- var width = parseIntAndGetMax(img.width, img.clientWidth);
411
- var height = parseIntAndGetMax(img.height, img.clientHeight);
412
- done(width, height);
413
- };
414
-
415
- img.onerror = function () {
416
- done();
417
- };
418
-
419
- var style = img.style;
420
- style.visibility = 'hidden';
421
- style.position = 'fixed';
422
- style.bottom = style.left = 0;
423
- style.width = style.height = 'auto';
424
-
425
- document.body.appendChild(img);
426
- img.src = url;
427
- };
428
-
429
-
430
- var buildListItems = function (inputList, itemCallback, startItems) {
431
- function appendItems(values, output) {
432
- output = output || [];
433
-
434
- Tools.each(values, function (item) {
435
- var menuItem = { text: item.text || item.title };
436
-
437
- if (item.menu) {
438
- menuItem.menu = appendItems(item.menu);
439
- } else {
440
- menuItem.value = item.value;
441
- itemCallback(menuItem);
442
- }
443
-
444
- output.push(menuItem);
445
- });
446
-
447
- return output;
448
- }
449
-
450
- return appendItems(inputList, startItems || []);
451
- };
452
-
453
- var removePixelSuffix = function (value) {
454
- if (value) {
455
- value = value.replace(/px$/, '');
456
- }
457
- return value;
458
- };
459
-
460
- var addPixelSuffix = function (value) {
461
- if (value.length > 0 && /^[0-9]+$/.test(value)) {
462
- value += 'px';
463
- }
464
- return value;
465
- };
466
-
467
- var mergeMargins = function (css) {
468
- if (css.margin) {
469
-
470
- var splitMargin = css.margin.split(" ");
471
-
472
- switch (splitMargin.length) {
473
- case 1: //margin: toprightbottomleft;
474
- css['margin-top'] = css['margin-top'] || splitMargin[0];
475
- css['margin-right'] = css['margin-right'] || splitMargin[0];
476
- css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];
477
- css['margin-left'] = css['margin-left'] || splitMargin[0];
478
- break;
479
- case 2: //margin: topbottom rightleft;
480
- css['margin-top'] = css['margin-top'] || splitMargin[0];
481
- css['margin-right'] = css['margin-right'] || splitMargin[1];
482
- css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];
483
- css['margin-left'] = css['margin-left'] || splitMargin[1];
484
- break;
485
- case 3: //margin: top rightleft bottom;
486
- css['margin-top'] = css['margin-top'] || splitMargin[0];
487
- css['margin-right'] = css['margin-right'] || splitMargin[1];
488
- css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];
489
- css['margin-left'] = css['margin-left'] || splitMargin[1];
490
- break;
491
- case 4: //margin: top right bottom left;
492
- css['margin-top'] = css['margin-top'] || splitMargin[0];
493
- css['margin-right'] = css['margin-right'] || splitMargin[1];
494
- css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];
495
- css['margin-left'] = css['margin-left'] || splitMargin[3];
496
- }
497
- delete css.margin;
498
- }
499
- return css;
500
- };
501
-
502
- var createImageList = function (editor, callback) {
503
- var imageList = Settings.getImageList(editor);
504
-
505
- if (typeof imageList === "string") {
506
- XHR.send({
507
- url: imageList,
508
- success: function (text) {
509
- callback(JSON.parse(text));
510
- }
511
- });
512
- } else if (typeof imageList === "function") {
513
- imageList(callback);
514
- } else {
515
- callback(imageList);
516
- }
517
- };
518
-
519
- var waitLoadImage = function (editor, data, imgElm) {
520
- function selectImage() {
521
- imgElm.onload = imgElm.onerror = null;
522
-
523
- if (editor.selection) {
524
- editor.selection.select(imgElm);
525
- editor.nodeChanged();
526
- }
527
- }
528
-
529
- imgElm.onload = function () {
530
- if (!data.width && !data.height && Settings.hasDimensions(editor)) {
531
- editor.dom.setAttribs(imgElm, {
532
- width: imgElm.clientWidth,
533
- height: imgElm.clientHeight
534
- });
535
- }
536
-
537
- selectImage();
538
- };
539
-
540
- imgElm.onerror = selectImage;
541
- };
542
-
543
- var blobToDataUri = function (blob) {
544
- return new Promise(function (resolve, reject) {
545
- var reader = new FileReader();
546
- reader.onload = function () {
547
- resolve(reader.result);
548
- };
549
- reader.onerror = function () {
550
- reject(FileReader.error.message);
551
- };
552
- reader.readAsDataURL(blob);
553
- });
554
- };
555
-
556
- return {
557
- getImageSize: getImageSize,
558
- buildListItems: buildListItems,
559
- removePixelSuffix: removePixelSuffix,
560
- addPixelSuffix: addPixelSuffix,
561
- mergeMargins: mergeMargins,
562
- createImageList: createImageList,
563
- waitLoadImage: waitLoadImage,
564
- blobToDataUri: blobToDataUri
565
- };
566
- }
567
- );
568
-
569
- define(
570
- 'tinymce.plugins.image.ui.AdvTab',
571
-
572
- [
573
- 'tinymce.plugins.image.api.Settings',
574
- 'tinymce.plugins.image.core.Utils'
575
- ],
576
-
577
- function (Settings, Utils) {
578
- var updateVSpaceHSpaceBorder = function (editor) {
579
- return function (evt) {
580
- var dom = editor.dom;
581
- var rootControl = evt.control.rootControl;
582
-
583
- if (!Settings.hasAdvTab(editor)) {
584
- return;
585
- }
586
-
587
- var data = rootControl.toJSON();
588
- var css = dom.parseStyle(data.style);
589
-
590
- rootControl.find('#vspace').value("");
591
- rootControl.find('#hspace').value("");
592
-
593
- css = Utils.mergeMargins(css);
594
-
595
- //Move opposite equal margins to vspace/hspace field
596
- if ((css['margin-top'] && css['margin-bottom']) || (css['margin-right'] && css['margin-left'])) {
597
- if (css['margin-top'] === css['margin-bottom']) {
598
- rootControl.find('#vspace').value(Utils.removePixelSuffix(css['margin-top']));
599
- } else {
600
- rootControl.find('#vspace').value('');
601
- }
602
- if (css['margin-right'] === css['margin-left']) {
603
- rootControl.find('#hspace').value(Utils.removePixelSuffix(css['margin-right']));
604
- } else {
605
- rootControl.find('#hspace').value('');
606
- }
607
- }
608
-
609
- //Move border-width
610
- if (css['border-width']) {
611
- rootControl.find('#border').value(Utils.removePixelSuffix(css['border-width']));
612
- }
613
-
614
- rootControl.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))));
615
- };
616
- };
617
-
618
- var makeTab = function (editor, updateStyle) {
619
- return {
620
- title: 'Advanced',
621
- type: 'form',
622
- pack: 'start',
623
- items: [
624
- {
625
- label: 'Style',
626
- name: 'style',
627
- type: 'textbox',
628
- onchange: updateVSpaceHSpaceBorder(editor)
1083
+ var submitForm = function (editor, evt) {
1084
+ var win = evt.control.getRoot();
1085
+ $_4gs98qd9jm0ofym5.updateSize(win);
1086
+ editor.undoManager.transact(function () {
1087
+ var data = merge(readImageDataFromSelection(editor), win.toJSON());
1088
+ insertOrUpdateImage(editor, data);
1089
+ });
1090
+ editor.editorUpload.uploadImagesAuto();
1091
+ };
1092
+ function Dialog (editor) {
1093
+ function showDialog(imageList) {
1094
+ var data = readImageDataFromSelection(editor);
1095
+ var win, imageListCtrl;
1096
+ if (imageList) {
1097
+ imageListCtrl = {
1098
+ type: 'listbox',
1099
+ label: 'Image list',
1100
+ name: 'image-list',
1101
+ values: $_5pkwh7ctjm0ofykd.buildListItems(imageList, function (item) {
1102
+ item.value = editor.convertURL(item.value || item.url, 'src');
1103
+ }, [{
1104
+ text: 'None',
1105
+ value: ''
1106
+ }]),
1107
+ value: data.src && editor.convertURL(data.src, 'src'),
1108
+ onselect: function (e) {
1109
+ var altCtrl = win.find('#alt');
1110
+ if (!altCtrl.value() || e.lastControl && altCtrl.value() === e.lastControl.text()) {
1111
+ altCtrl.value(e.control.text());
1112
+ }
1113
+ win.find('#src').value(e.control.value()).fire('change');
629
1114
  },
630
- {
631
- type: 'form',
632
- layout: 'grid',
633
- packV: 'start',
634
- columns: 2,
635
- padding: 0,
636
- alignH: ['left', 'right'],
637
- defaults: {
638
- type: 'textbox',
639
- maxWidth: 50,
640
- onchange: function (evt) {
641
- updateStyle(editor, evt.control.rootControl);
642
- }
643
- },
644
- items: [
645
- { label: 'Vertical space', name: 'vspace' },
646
- { label: 'Horizontal space', name: 'hspace' },
647
- { label: 'Border', name: 'border' }
648
- ]
1115
+ onPostRender: function () {
1116
+ imageListCtrl = this;
649
1117
  }
650
- ]
651
- };
652
- };
653
-
654
- return {
655
- makeTab: makeTab
656
- };
657
- }
658
- );
659
-
660
- define(
661
- 'tinymce.plugins.image.ui.SizeManager',
662
-
663
- [
664
-
665
- ],
666
- function () {
667
- var doSyncSize = function (widthCtrl, heightCtrl) {
668
- widthCtrl.state.set('oldVal', widthCtrl.value());
669
- heightCtrl.state.set('oldVal', heightCtrl.value());
670
- };
671
-
672
- var doSizeControls = function (win, f) {
673
- var widthCtrl = win.find('#width')[0];
674
- var heightCtrl = win.find('#height')[0];
675
- var constrained = win.find('#constrain')[0];
676
- if (widthCtrl && heightCtrl && constrained) {
677
- f(widthCtrl, heightCtrl, constrained.checked());
1118
+ };
678
1119
  }
679
- };
680
-
681
- var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) {
682
- var oldWidth = widthCtrl.state.get('oldVal');
683
- var oldHeight = heightCtrl.state.get('oldVal');
684
- var newWidth = widthCtrl.value();
685
- var newHeight = heightCtrl.value();
686
-
687
- if (isContrained && oldWidth && oldHeight && newWidth && newHeight) {
688
- if (newWidth !== oldWidth) {
689
- newHeight = Math.round((newWidth / oldWidth) * newHeight);
690
-
691
- if (!isNaN(newHeight)) {
692
- heightCtrl.value(newHeight);
693
- }
694
- } else {
695
- newWidth = Math.round((newHeight / oldHeight) * newWidth);
696
-
697
- if (!isNaN(newWidth)) {
698
- widthCtrl.value(newWidth);
699
- }
1120
+ if ($_95hfkhcsjm0ofyka.hasAdvTab(editor) || $_95hfkhcsjm0ofyka.hasUploadUrl(editor) || $_95hfkhcsjm0ofyka.hasUploadHandler(editor)) {
1121
+ var body = [$_g4z4xud8jm0ofym1.makeTab(editor, imageListCtrl)];
1122
+ if ($_95hfkhcsjm0ofyka.hasAdvTab(editor)) {
1123
+ body.push($_bc3dkmd2jm0ofylg.makeTab(editor));
700
1124
  }
701
- }
702
-
703
- doSyncSize(widthCtrl, heightCtrl);
704
- };
705
-
706
- var syncSize = function (win) {
707
- doSizeControls(win, doSyncSize);
708
- };
709
-
710
- var updateSize = function (win) {
711
- doSizeControls(win, doUpdateSize);
712
- };
713
-
714
- var createUi = function () {
715
- var recalcSize = function (evt) {
716
- updateSize(evt.control.rootControl);
717
- };
718
-
719
- return {
720
- type: 'container',
721
- label: 'Dimensions',
722
- layout: 'flex',
723
- align: 'center',
724
- spacing: 5,
725
- items: [
726
- {
727
- name: 'width', type: 'textbox', maxLength: 5, size: 5,
728
- onchange: recalcSize, ariaLabel: 'Width'
729
- },
730
- { type: 'label', text: 'x' },
731
- {
732
- name: 'height', type: 'textbox', maxLength: 5, size: 5,
733
- onchange: recalcSize, ariaLabel: 'Height'
734
- },
735
- { name: 'constrain', type: 'checkbox', checked: true, text: 'Constrain proportions' }
736
- ]
737
- };
738
- };
739
-
740
- return {
741
- createUi: createUi,
742
- syncSize: syncSize,
743
- updateSize: updateSize
744
- };
745
- }
746
- );
747
- define(
748
- 'tinymce.plugins.image.ui.MainTab',
749
-
750
- [
751
- 'tinymce.core.util.Tools',
752
- 'tinymce.plugins.image.api.Settings',
753
- 'tinymce.plugins.image.core.Utils',
754
- 'tinymce.plugins.image.ui.SizeManager'
755
- ],
756
-
757
- function (Tools, Settings, Utils, SizeManager) {
758
- var onSrcChange = function (evt, editor) {
759
- var srcURL, prependURL, absoluteURLPattern, meta = evt.meta || {};
760
- var control = evt.control;
761
- var rootControl = control.rootControl;
762
- var imageListCtrl = rootControl.find('#image-list')[0];
763
-
764
- if (imageListCtrl) {
765
- imageListCtrl.value(editor.convertURL(control.value(), 'src'));
766
- }
767
-
768
- Tools.each(meta, function (value, key) {
769
- rootControl.find('#' + key).value(value);
770
- });
771
-
772
- if (!meta.width && !meta.height) {
773
- srcURL = editor.convertURL(control.value(), 'src');
774
-
775
- // Pattern test the src url and make sure we haven't already prepended the url
776
- prependURL = Settings.getPrependUrl(editor);
777
- absoluteURLPattern = new RegExp('^(?:[a-z]+:)?//', 'i');
778
- if (prependURL && !absoluteURLPattern.test(srcURL) && srcURL.substring(0, prependURL.length) !== prependURL) {
779
- srcURL = prependURL + srcURL;
1125
+ if ($_95hfkhcsjm0ofyka.hasUploadUrl(editor) || $_95hfkhcsjm0ofyka.hasUploadHandler(editor)) {
1126
+ body.push($_a17nn8dajm0ofym8.makeTab(editor));
780
1127
  }
781
-
782
- control.value(srcURL);
783
-
784
- Utils.getImageSize(editor.documentBaseURI.toAbsolute(control.value()), function (data) {
785
- if (data.width && data.height && Settings.hasDimensions(editor)) {
786
- rootControl.find('#width').value(data.width);
787
- rootControl.find('#height').value(data.height);
788
- SizeManager.updateSize(rootControl);
789
- }
1128
+ win = editor.windowManager.open({
1129
+ title: 'Insert/edit image',
1130
+ data: data,
1131
+ bodyType: 'tabpanel',
1132
+ body: body,
1133
+ onSubmit: curry(submitForm, editor)
790
1134
  });
791
- }
792
- };
793
-
794
- var onBeforeCall = function (evt) {
795
- evt.meta = evt.control.rootControl.toJSON();
796
- };
797
-
798
- var getGeneralItems = function (editor, imageListCtrl) {
799
- var generalFormItems = [
800
- {
801
- name: 'src',
802
- type: 'filepicker',
803
- filetype: 'image',
804
- label: 'Source',
805
- autofocus: true,
806
- onchange: function (evt) {
807
- onSrcChange(evt, editor);
808
- },
809
- onbeforecall: onBeforeCall
810
- },
811
- imageListCtrl
812
- ];
813
-
814
- if (Settings.hasDescription(editor)) {
815
- generalFormItems.push({ name: 'alt', type: 'textbox', label: 'Image description' });
816
- }
817
-
818
- if (Settings.hasImageTitle(editor)) {
819
- generalFormItems.push({ name: 'title', type: 'textbox', label: 'Image Title' });
820
- }
821
-
822
- if (Settings.hasDimensions(editor)) {
823
- generalFormItems.push(
824
- SizeManager.createUi()
825
- );
826
- }
827
-
828
- if (Settings.getClassList(editor)) {
829
- generalFormItems.push({
830
- name: 'class',
831
- type: 'listbox',
832
- label: 'Class',
833
- values: Utils.buildListItems(
834
- Settings.getClassList(editor),
835
- function (item) {
836
- if (item.value) {
837
- item.textStyle = function () {
838
- return editor.formatter.getCssText({ inline: 'img', classes: [item.value] });
839
- };
840
- }
841
- }
842
- )
1135
+ } else {
1136
+ win = editor.windowManager.open({
1137
+ title: 'Insert/edit image',
1138
+ data: data,
1139
+ body: $_g4z4xud8jm0ofym1.getGeneralItems(editor, imageListCtrl),
1140
+ onSubmit: curry(submitForm, editor)
843
1141
  });
844
1142
  }
845
-
846
- if (Settings.hasImageCaption(editor)) {
847
- generalFormItems.push({ name: 'caption', type: 'checkbox', label: 'Caption' });
848
- }
849
-
850
- return generalFormItems;
851
- };
852
-
853
- var makeTab = function (editor, imageListCtrl) {
854
- return {
855
- title: 'General',
856
- type: 'form',
857
- items: getGeneralItems(editor, imageListCtrl)
858
- };
859
- };
860
-
861
- return {
862
- makeTab: makeTab,
863
- getGeneralItems: getGeneralItems
864
- };
865
- }
866
- );
867
-
868
- define(
869
- 'ephox.sand.api.URL',
870
-
871
- [
872
- 'ephox.sand.util.Global'
873
- ],
874
-
875
- function (Global) {
876
- /*
877
- * IE10 and above per
878
- * https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL
879
- *
880
- * Also Safari 6.1+
881
- * Safari 6.0 has 'webkitURL' instead, but doesn't support flexbox so we
882
- * aren't supporting it anyway
883
- */
884
- var url = function () {
885
- return Global.getOrDie('URL');
886
- };
887
-
888
- var createObjectURL = function (blob) {
889
- return url().createObjectURL(blob);
890
- };
891
-
892
- var revokeObjectURL = function (u) {
893
- url().revokeObjectURL(u);
894
- };
895
-
896
- return {
897
- createObjectURL: createObjectURL,
898
- revokeObjectURL: revokeObjectURL
899
- };
900
- }
901
- );
902
- /**
903
- * ResolveGlobal.js
904
- *
905
- * Released under LGPL License.
906
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
907
- *
908
- * License: http://www.tinymce.com/license
909
- * Contributing: http://www.tinymce.com/contributing
910
- */
911
-
912
- define(
913
- 'tinymce.core.ui.Factory',
914
- [
915
- 'global!tinymce.util.Tools.resolve'
916
- ],
917
- function (resolve) {
918
- return resolve('tinymce.ui.Factory');
919
- }
920
- );
921
-
922
- define(
923
- 'ephox.sand.api.XMLHttpRequest',
924
-
925
- [
926
- 'ephox.sand.util.Global'
927
- ],
928
-
929
- function (Global) {
930
- /*
931
- * IE8 and above per
932
- * https://developer.mozilla.org/en/docs/XMLHttpRequest
933
- */
934
- return function () {
935
- var f = Global.getOrDie('XMLHttpRequest');
936
- return new f();
937
- };
938
- }
939
- );
940
- defineGlobal("global!window", window);
941
- /**
942
- * Uploader.js
943
- *
944
- * Released under LGPL License.
945
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
946
- *
947
- * License: http://www.tinymce.com/license
948
- * Contributing: http://www.tinymce.com/contributing
949
- */
950
-
951
- /**
952
- * This is basically cut down version of tinymce.core.file.Uploader, which we could use directly
953
- * if it wasn't marked as private.
954
- */
955
- define(
956
- 'tinymce.plugins.image.core.Uploader',
957
- [
958
- 'ephox.sand.api.XMLHttpRequest',
959
- 'global!document',
960
- 'global!window',
961
- 'tinymce.core.util.Promise',
962
- 'tinymce.core.util.Tools'
963
- ],
964
- function (XMLHttpRequest, document, window, Promise, Tools) {
965
- var noop = function () {};
966
-
967
- var pathJoin = function (path1, path2) {
968
- if (path1) {
969
- return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, '');
970
- }
971
-
972
- return path2;
973
- };
974
-
975
- return function (settings) {
976
- var defaultHandler = function (blobInfo, success, failure, progress) {
977
- var xhr, formData;
978
-
979
- xhr = new XMLHttpRequest();
980
- xhr.open('POST', settings.url);
981
- xhr.withCredentials = settings.credentials;
982
-
983
- xhr.upload.onprogress = function (e) {
984
- progress(e.loaded / e.total * 100);
985
- };
986
-
987
- xhr.onerror = function () {
988
- failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);
989
- };
990
-
991
- xhr.onload = function () {
992
- var json;
993
-
994
- if (xhr.status < 200 || xhr.status >= 300) {
995
- failure('HTTP Error: ' + xhr.status);
996
- return;
997
- }
998
-
999
- json = JSON.parse(xhr.responseText);
1000
-
1001
- if (!json || typeof json.location !== 'string') {
1002
- failure('Invalid JSON: ' + xhr.responseText);
1003
- return;
1004
- }
1005
-
1006
- success(pathJoin(settings.basePath, json.location));
1007
- };
1008
-
1009
- formData = new window.FormData();
1010
- formData.append('file', blobInfo.blob(), blobInfo.filename());
1011
-
1012
- xhr.send(formData);
1013
- };
1014
-
1015
- var uploadBlob = function (blobInfo, handler) {
1016
- return new Promise(function (resolve, reject) {
1017
- try {
1018
- handler(blobInfo, resolve, reject, noop);
1019
- } catch (ex) {
1020
- reject(ex.message);
1021
- }
1022
- });
1023
- };
1024
-
1025
- var isDefaultHandler = function (handler) {
1026
- return handler === defaultHandler;
1027
- };
1028
-
1029
- var upload = function (blobInfo) {
1030
- return (!settings.url && isDefaultHandler(settings.handler)) ? Promise.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler);
1031
- };
1032
-
1033
- settings = Tools.extend({
1034
- credentials: false,
1035
- handler: defaultHandler
1036
- }, settings);
1037
-
1038
- return {
1039
- upload: upload
1040
- };
1041
- };
1042
- }
1043
- );
1044
- define(
1045
- 'tinymce.plugins.image.ui.UploadTab',
1046
-
1047
- [
1048
- 'ephox.sand.api.URL',
1049
- 'tinymce.core.ui.Factory',
1050
- 'tinymce.plugins.image.api.Settings',
1051
- 'tinymce.plugins.image.core.Utils',
1052
- 'tinymce.plugins.image.core.Uploader'
1053
- ],
1054
-
1055
- function (URL, Factory, Settings, Utils, Uploader) {
1056
- var onFileInput = function (editor) {
1057
- return function (evt) {
1058
- var Throbber = Factory.get('Throbber');
1059
- var rootControl = evt.control.rootControl;
1060
- var throbber = new Throbber(rootControl.getEl());
1061
- var file = evt.control.value();
1062
- var blobUri = URL.createObjectURL(file);
1063
-
1064
- var uploader = new Uploader({
1065
- url: Settings.getUploadUrl(editor),
1066
- basePath: Settings.getUploadBasePath(editor),
1067
- credentials: Settings.getUploadCredentials(editor),
1068
- handler: Settings.getUploadHandler(editor)
1069
- });
1070
-
1071
- var finalize = function () {
1072
- throbber.hide();
1073
- URL.revokeObjectURL(blobUri);
1074
- };
1075
-
1076
- throbber.show();
1077
-
1078
- return Utils.blobToDataUri(file).then(function (dataUrl) {
1079
- var blobInfo = editor.editorUpload.blobCache.create({
1080
- blob: file,
1081
- blobUri: blobUri,
1082
- name: file.name ? file.name.replace(/\.[^\.]+$/, '') : null, // strip extension
1083
- base64: dataUrl.split(',')[1]
1084
- });
1085
- return uploader.upload(blobInfo).then(function (url) {
1086
- var src = rootControl.find('#src');
1087
- src.value(url);
1088
- rootControl.find('tabpanel')[0].activateTab(0); // switch to General tab
1089
- src.fire('change'); // this will invoke onSrcChange (and any other handlers, if any).
1090
- finalize();
1091
- return url;
1092
- });
1093
- })['catch'](function (err) {
1094
- editor.windowManager.alert(err);
1095
- finalize();
1096
- });
1097
- };
1098
- };
1099
-
1100
- var acceptExts = '.jpg,.jpeg,.png,.gif';
1101
-
1102
- var makeTab = function (editor) {
1103
- return {
1104
- title: 'Upload',
1105
- type: 'form',
1106
- layout: 'flex',
1107
- direction: 'column',
1108
- align: 'stretch',
1109
- padding: '20 20 20 20',
1110
- items: [
1111
- {
1112
- type: 'container',
1113
- layout: 'flex',
1114
- direction: 'column',
1115
- align: 'center',
1116
- spacing: 10,
1117
- items: [
1118
- {
1119
- text: "Browse for an image",
1120
- type: 'browsebutton',
1121
- accept: acceptExts,
1122
- onchange: onFileInput(editor)
1123
- },
1124
- {
1125
- text: 'OR',
1126
- type: 'label'
1127
- }
1128
- ]
1129
- },
1130
- {
1131
- text: "Drop an image here",
1132
- type: 'dropzone',
1133
- accept: acceptExts,
1134
- height: 100,
1135
- onchange: onFileInput(editor)
1136
- }
1137
- ]
1138
- };
1139
- };
1140
-
1141
- return {
1142
- makeTab: makeTab
1143
- };
1143
+ $_4gs98qd9jm0ofym5.syncSize(win);
1144
+ }
1145
+ function open() {
1146
+ $_5pkwh7ctjm0ofykd.createImageList(editor, showDialog);
1147
+ }
1148
+ return { open: open };
1144
1149
  }
1145
- );
1146
-
1147
- /**
1148
- * Dialog.js
1149
- *
1150
- * Released under LGPL License.
1151
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
1152
- *
1153
- * License: http://www.tinymce.com/license
1154
- * Contributing: http://www.tinymce.com/contributing
1155
- */
1156
-
1157
- /**
1158
- * @class tinymce.image.ui.Dialog
1159
- * @private
1160
- */
1161
- define(
1162
- 'tinymce.plugins.image.ui.Dialog',
1163
- [
1164
- 'global!Math',
1165
- 'global!RegExp',
1166
- 'tinymce.core.util.Tools',
1167
- 'tinymce.plugins.image.api.Settings',
1168
- 'tinymce.plugins.image.core.Utils',
1169
- 'tinymce.plugins.image.ui.AdvTab',
1170
- 'tinymce.plugins.image.ui.MainTab',
1171
- 'tinymce.plugins.image.ui.SizeManager',
1172
- 'tinymce.plugins.image.ui.UploadTab'
1173
- ],
1174
- function (Math, RegExp, Tools, Settings, Utils, AdvTab, MainTab, SizeManager, UploadTab) {
1175
- return function (editor) {
1176
- var updateStyle = function (editor, rootControl) {
1177
- if (!Settings.hasAdvTab(editor)) {
1178
- return;
1179
- }
1180
- var dom = editor.dom;
1181
- var data = rootControl.toJSON();
1182
- var css = dom.parseStyle(data.style);
1183
-
1184
- css = Utils.mergeMargins(css);
1185
1150
 
1186
- if (data.vspace) {
1187
- css['margin-top'] = css['margin-bottom'] = Utils.addPixelSuffix(data.vspace);
1188
- }
1189
- if (data.hspace) {
1190
- css['margin-left'] = css['margin-right'] = Utils.addPixelSuffix(data.hspace);
1191
- }
1192
- if (data.border) {
1193
- css['border-width'] = Utils.addPixelSuffix(data.border);
1194
- }
1151
+ var register = function (editor) {
1152
+ editor.addCommand('mceImage', Dialog(editor).open);
1153
+ };
1154
+ var $_fd1mcfcqjm0ofyk2 = { register: register };
1195
1155
 
1196
- rootControl.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))));
1156
+ var hasImageClass = function (node) {
1157
+ var className = node.attr('class');
1158
+ return className && /\bimage\b/.test(className);
1159
+ };
1160
+ var toggleContentEditableState = function (state) {
1161
+ return function (nodes) {
1162
+ var i = nodes.length, node;
1163
+ var toggleContentEditable = function (node) {
1164
+ node.attr('contenteditable', state ? 'true' : null);
1197
1165
  };
1198
-
1199
- function showDialog(imageList) {
1200
- var win, data = {}, imgElm, figureElm, dom = editor.dom;
1201
- var imageListCtrl;
1202
-
1203
- function onSubmitForm() {
1204
- var figureElm, oldImg;
1205
-
1206
- SizeManager.updateSize(win);
1207
- updateStyle(editor, win);
1208
-
1209
- data = Tools.extend(data, win.toJSON());
1210
-
1211
- if (!data.alt) {
1212
- data.alt = '';
1213
- }
1214
-
1215
- if (!data.title) {
1216
- data.title = '';
1217
- }
1218
-
1219
- if (data.width === '') {
1220
- data.width = null;
1221
- }
1222
-
1223
- if (data.height === '') {
1224
- data.height = null;
1225
- }
1226
-
1227
- if (!data.style) {
1228
- data.style = null;
1229
- }
1230
-
1231
- // Setup new data excluding style properties
1232
- /*eslint dot-notation: 0*/
1233
- data = {
1234
- src: data.src,
1235
- alt: data.alt,
1236
- title: data.title,
1237
- width: data.width,
1238
- height: data.height,
1239
- style: data.style,
1240
- caption: data.caption,
1241
- "class": data["class"]
1242
- };
1243
-
1244
- editor.undoManager.transact(function () {
1245
- if (!data.src) {
1246
- if (imgElm) {
1247
- var elm = dom.is(imgElm.parentNode, 'figure.image') ? imgElm.parentNode : imgElm;
1248
- dom.remove(elm);
1249
- editor.focus();
1250
- editor.nodeChanged();
1251
-
1252
- if (dom.isEmpty(editor.getBody())) {
1253
- editor.setContent('');
1254
- editor.selection.setCursorLocation();
1255
- }
1256
- }
1257
-
1258
- return;
1259
- }
1260
-
1261
- if (data.title === "") {
1262
- data.title = null;
1263
- }
1264
-
1265
- if (!imgElm) {
1266
- data.id = '__mcenew';
1267
- editor.focus();
1268
- editor.selection.setContent(dom.createHTML('img', data));
1269
- imgElm = dom.get('__mcenew');
1270
- dom.setAttrib(imgElm, 'id', null);
1271
- } else {
1272
- dom.setAttribs(imgElm, data);
1273
- }
1274
-
1275
- editor.editorUpload.uploadImagesAuto();
1276
-
1277
- if (data.caption === false) {
1278
- if (dom.is(imgElm.parentNode, 'figure.image')) {
1279
- figureElm = imgElm.parentNode;
1280
- dom.insertAfter(imgElm, figureElm);
1281
- dom.remove(figureElm);
1282
- }
1283
- }
1284
-
1285
- if (data.caption === true) {
1286
- if (!dom.is(imgElm.parentNode, 'figure.image')) {
1287
- oldImg = imgElm;
1288
- imgElm = imgElm.cloneNode(true);
1289
- figureElm = dom.create('figure', { 'class': 'image' });
1290
- figureElm.appendChild(imgElm);
1291
- figureElm.appendChild(dom.create('figcaption', { contentEditable: true }, 'Caption'));
1292
- figureElm.contentEditable = false;
1293
-
1294
- var textBlock = dom.getParent(oldImg, function (node) {
1295
- return editor.schema.getTextBlockElements()[node.nodeName];
1296
- });
1297
-
1298
- if (textBlock) {
1299
- dom.split(textBlock, oldImg, figureElm);
1300
- } else {
1301
- dom.replace(figureElm, oldImg);
1302
- }
1303
-
1304
- editor.selection.select(figureElm);
1305
- }
1306
-
1307
- return;
1308
- }
1309
-
1310
- Utils.waitLoadImage(editor, data, imgElm);
1311
- });
1312
- }
1313
-
1314
- imgElm = editor.selection.getNode();
1315
- figureElm = dom.getParent(imgElm, 'figure.image');
1316
- if (figureElm) {
1317
- imgElm = dom.select('img', figureElm)[0];
1318
- }
1319
-
1320
- if (imgElm &&
1321
- (imgElm.nodeName !== 'IMG' ||
1322
- imgElm.getAttribute('data-mce-object') ||
1323
- imgElm.getAttribute('data-mce-placeholder'))) {
1324
- imgElm = null;
1325
- }
1326
-
1327
- if (imgElm) {
1328
- data = {
1329
- src: dom.getAttrib(imgElm, 'src'),
1330
- alt: dom.getAttrib(imgElm, 'alt'),
1331
- title: dom.getAttrib(imgElm, 'title'),
1332
- "class": dom.getAttrib(imgElm, 'class'),
1333
- width: dom.getAttrib(imgElm, 'width'),
1334
- height: dom.getAttrib(imgElm, 'height'),
1335
- caption: !!figureElm
1336
- };
1337
- }
1338
-
1339
- if (imageList) {
1340
- imageListCtrl = {
1341
- type: 'listbox',
1342
- label: 'Image list',
1343
- name: 'image-list',
1344
- values: Utils.buildListItems(
1345
- imageList,
1346
- function (item) {
1347
- item.value = editor.convertURL(item.value || item.url, 'src');
1348
- },
1349
- [{ text: 'None', value: '' }]
1350
- ),
1351
- value: data.src && editor.convertURL(data.src, 'src'),
1352
- onselect: function (e) {
1353
- var altCtrl = win.find('#alt');
1354
-
1355
- if (!altCtrl.value() || (e.lastControl && altCtrl.value() === e.lastControl.text())) {
1356
- altCtrl.value(e.control.text());
1357
- }
1358
-
1359
- win.find('#src').value(e.control.value()).fire('change');
1360
- },
1361
- onPostRender: function () {
1362
- /*eslint consistent-this: 0*/
1363
- imageListCtrl = this;
1364
- }
1365
- };
1366
- }
1367
-
1368
- if (Settings.hasAdvTab(editor) || Settings.hasUploadUrl(editor) || Settings.hasUploadHandler(editor)) {
1369
- var body = [
1370
- MainTab.makeTab(editor, imageListCtrl)
1371
- ];
1372
-
1373
- if (Settings.hasAdvTab(editor)) {
1374
- // Parse styles from img
1375
- if (imgElm) {
1376
- if (imgElm.style.marginLeft && imgElm.style.marginRight && imgElm.style.marginLeft === imgElm.style.marginRight) {
1377
- data.hspace = Utils.removePixelSuffix(imgElm.style.marginLeft);
1378
- }
1379
- if (imgElm.style.marginTop && imgElm.style.marginBottom && imgElm.style.marginTop === imgElm.style.marginBottom) {
1380
- data.vspace = Utils.removePixelSuffix(imgElm.style.marginTop);
1381
- }
1382
- if (imgElm.style.borderWidth) {
1383
- data.border = Utils.removePixelSuffix(imgElm.style.borderWidth);
1384
- }
1385
-
1386
- data.style = editor.dom.serializeStyle(editor.dom.parseStyle(editor.dom.getAttrib(imgElm, 'style')));
1387
- }
1388
-
1389
- body.push(AdvTab.makeTab(editor, updateStyle));
1390
- }
1391
-
1392
- if (Settings.hasUploadUrl(editor) || Settings.hasUploadHandler(editor)) {
1393
- body.push(UploadTab.makeTab(editor));
1394
- }
1395
-
1396
- // Advanced dialog shows general+advanced tabs
1397
- win = editor.windowManager.open({
1398
- title: 'Insert/edit image',
1399
- data: data,
1400
- bodyType: 'tabpanel',
1401
- body: body,
1402
- onSubmit: onSubmitForm
1403
- });
1404
- } else {
1405
- // Simple default dialog
1406
- win = editor.windowManager.open({
1407
- title: 'Insert/edit image',
1408
- data: data,
1409
- body: MainTab.getGeneralItems(editor, imageListCtrl),
1410
- onSubmit: onSubmitForm
1411
- });
1166
+ while (i--) {
1167
+ node = nodes[i];
1168
+ if (hasImageClass(node)) {
1169
+ node.attr('contenteditable', state ? 'false' : null);
1170
+ global$2.each(node.getAll('figcaption'), toggleContentEditable);
1412
1171
  }
1413
-
1414
- SizeManager.syncSize(win);
1415
- }
1416
-
1417
- function open() {
1418
- Utils.createImageList(editor, showDialog);
1419
1172
  }
1420
-
1421
- return {
1422
- open: open
1423
- };
1424
- };
1425
- }
1426
- );
1427
-
1428
- /**
1429
- * Commands.js
1430
- *
1431
- * Released under LGPL License.
1432
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
1433
- *
1434
- * License: http://www.tinymce.com/license
1435
- * Contributing: http://www.tinymce.com/contributing
1436
- */
1437
-
1438
- define(
1439
- 'tinymce.plugins.image.api.Commands',
1440
- [
1441
- 'tinymce.plugins.image.ui.Dialog'
1442
- ],
1443
- function (Dialog) {
1444
- var register = function (editor) {
1445
- editor.addCommand('mceImage', Dialog(editor).open);
1446
- };
1447
-
1448
- return {
1449
- register: register
1450
- };
1451
- }
1452
- );
1453
- /**
1454
- * FilterContent.js
1455
- *
1456
- * Released under LGPL License.
1457
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
1458
- *
1459
- * License: http://www.tinymce.com/license
1460
- * Contributing: http://www.tinymce.com/contributing
1461
- */
1462
-
1463
- define(
1464
- 'tinymce.plugins.image.core.FilterContent',
1465
- [
1466
- 'tinymce.core.util.Tools'
1467
- ],
1468
- function (Tools) {
1469
- var hasImageClass = function (node) {
1470
- var className = node.attr('class');
1471
- return className && /\bimage\b/.test(className);
1472
- };
1473
-
1474
- var toggleContentEditableState = function (state) {
1475
- return function (nodes) {
1476
- var i = nodes.length, node;
1477
-
1478
- var toggleContentEditable = function (node) {
1479
- node.attr('contenteditable', state ? 'true' : null);
1480
- };
1481
-
1482
- while (i--) {
1483
- node = nodes[i];
1484
-
1485
- if (hasImageClass(node)) {
1486
- node.attr('contenteditable', state ? 'false' : null);
1487
- Tools.each(node.getAll('figcaption'), toggleContentEditable);
1488
- }
1489
- }
1490
- };
1491
- };
1492
-
1493
- var setup = function (editor) {
1494
- editor.on('preInit', function () {
1495
- editor.parser.addNodeFilter('figure', toggleContentEditableState(true));
1496
- editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));
1497
- });
1498
- };
1499
-
1500
- return {
1501
- setup: setup
1502
- };
1503
- }
1504
- );
1505
- /**
1506
- * Buttons.js
1507
- *
1508
- * Released under LGPL License.
1509
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
1510
- *
1511
- * License: http://www.tinymce.com/license
1512
- * Contributing: http://www.tinymce.com/contributing
1513
- */
1514
-
1515
- define(
1516
- 'tinymce.plugins.image.ui.Buttons',
1517
- [
1518
- 'tinymce.plugins.image.ui.Dialog'
1519
- ],
1520
- function (Dialog) {
1521
- var register = function (editor) {
1522
- editor.addButton('image', {
1523
- icon: 'image',
1524
- tooltip: 'Insert/edit image',
1525
- onclick: Dialog(editor).open,
1526
- stateSelector: 'img:not([data-mce-object],[data-mce-placeholder]),figure.image'
1527
- });
1528
-
1529
- editor.addMenuItem('image', {
1530
- icon: 'image',
1531
- text: 'Image',
1532
- onclick: Dialog(editor).open,
1533
- context: 'insert',
1534
- prependToContext: true
1535
- });
1536
- };
1537
-
1538
- return {
1539
- register: register
1540
1173
  };
1174
+ };
1175
+ var setup = function (editor) {
1176
+ editor.on('preInit', function () {
1177
+ editor.parser.addNodeFilter('figure', toggleContentEditableState(true));
1178
+ editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));
1179
+ });
1180
+ };
1181
+ var $_9p5qtrdgjm0ofymo = { setup: setup };
1182
+
1183
+ var register$1 = function (editor) {
1184
+ editor.addButton('image', {
1185
+ icon: 'image',
1186
+ tooltip: 'Insert/edit image',
1187
+ onclick: Dialog(editor).open,
1188
+ stateSelector: 'img:not([data-mce-object],[data-mce-placeholder]),figure.image'
1189
+ });
1190
+ editor.addMenuItem('image', {
1191
+ icon: 'image',
1192
+ text: 'Image',
1193
+ onclick: Dialog(editor).open,
1194
+ context: 'insert',
1195
+ prependToContext: true
1196
+ });
1197
+ };
1198
+ var $_6f6xo7dhjm0ofymp = { register: register$1 };
1199
+
1200
+ global.add('image', function (editor) {
1201
+ $_9p5qtrdgjm0ofymo.setup(editor);
1202
+ $_6f6xo7dhjm0ofymp.register(editor);
1203
+ $_fd1mcfcqjm0ofyk2.register(editor);
1204
+ });
1205
+ function Plugin () {
1541
1206
  }
1542
- );
1543
- /**
1544
- * Plugin.js
1545
- *
1546
- * Released under LGPL License.
1547
- * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
1548
- *
1549
- * License: http://www.tinymce.com/license
1550
- * Contributing: http://www.tinymce.com/contributing
1551
- */
1552
1207
 
1553
- define(
1554
- 'tinymce.plugins.image.Plugin',
1555
- [
1556
- 'tinymce.core.PluginManager',
1557
- 'tinymce.plugins.image.api.Commands',
1558
- 'tinymce.plugins.image.core.FilterContent',
1559
- 'tinymce.plugins.image.ui.Buttons'
1560
- ],
1561
- function (PluginManager, Commands, FilterContent, Buttons) {
1562
- PluginManager.add('image', function (editor) {
1563
- FilterContent.setup(editor);
1564
- Buttons.register(editor);
1565
- Commands.register(editor);
1566
- });
1208
+ return Plugin;
1567
1209
 
1568
- return function () { };
1569
- }
1570
- );
1571
- dem('tinymce.plugins.image.Plugin')();
1210
+ }());
1572
1211
  })();