fluentd-ui 0.3.13 → 0.3.14

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd-ui might be problematic. Click here for more details.

Files changed (287) hide show
  1. data/ChangeLog +9 -0
  2. data/Gemfile.lock +47 -44
  3. data/README.md +4 -4
  4. data/app/assets/javascripts/vue/in_tail_format.js +7 -2
  5. data/app/assets/stylesheets/common.css.scss +16 -0
  6. data/app/controllers/concerns/setting_history_concern.rb +6 -0
  7. data/app/controllers/fluentd/settings_controller.rb +37 -8
  8. data/app/models/fluent_gem.rb +6 -3
  9. data/app/models/fluentd/agent.rb +1 -0
  10. data/app/models/fluentd/agent/common.rb +4 -0
  11. data/app/models/fluentd/agent/fluentd_gem.rb +9 -13
  12. data/app/models/fluentd/agent/local_common.rb +23 -0
  13. data/app/models/fluentd/agent/td_agent.rb +4 -0
  14. data/app/models/fluentd/agent/td_agent/macosx.rb +0 -4
  15. data/app/models/fluentd/agent/td_agent/unix.rb +0 -4
  16. data/app/views/fluentd/settings/edit.html.haml +1 -3
  17. data/app/views/fluentd/settings/histories/show.html.haml +10 -0
  18. data/app/views/fluentd/settings/running_backup/show.html.haml +11 -0
  19. data/app/views/shared/settings/_diff.html.erb +21 -0
  20. data/circle.yml +5 -0
  21. data/config/application.rb +1 -0
  22. data/config/locales/translation_en.yml +7 -0
  23. data/config/locales/translation_ja.yml +7 -0
  24. data/fluentd-ui.gemspec +1 -0
  25. data/lib/fluentd-ui.rb +5 -1
  26. data/lib/fluentd-ui/version.rb +1 -1
  27. data/spec/features/fluentd/setting/histories_spec.rb +23 -1
  28. data/spec/features/fluentd/setting/running_backup_spec.rb +22 -1
  29. data/spec/models/fluentd/agent/local_common_spec.rb +4 -2
  30. data/spec/models/fluentd/agent_spec.rb +1 -48
  31. data/spec/models/plugin_spec.rb +2 -2
  32. data/spec/spec_helper.rb +10 -0
  33. data/spec/support/fluentd_agent_common_behavior.rb +53 -0
  34. data/vendor/assets/javascripts/bower/.gitignore +10 -0
  35. data/vendor/assets/javascripts/bower/vue/.bower.json +4 -4
  36. data/vendor/assets/javascripts/bower/vue/bower.json +17 -0
  37. data/vendor/assets/javascripts/bower/vue/dist/vue.js +329 -198
  38. data/vendor/assets/javascripts/bower/vue/dist/vue.min.js +3 -3
  39. metadata +107 -291
  40. checksums.yaml +0 -7
  41. data/vendor/assets/javascripts/bower/codemirror/AUTHORS +0 -423
  42. data/vendor/assets/javascripts/bower/codemirror/CONTRIBUTING.md +0 -76
  43. data/vendor/assets/javascripts/bower/codemirror/LICENSE +0 -19
  44. data/vendor/assets/javascripts/bower/codemirror/README.md +0 -11
  45. data/vendor/assets/javascripts/bower/codemirror/addon/comment/comment.js +0 -183
  46. data/vendor/assets/javascripts/bower/codemirror/addon/comment/continuecomment.js +0 -85
  47. data/vendor/assets/javascripts/bower/codemirror/addon/dialog/dialog.css +0 -32
  48. data/vendor/assets/javascripts/bower/codemirror/addon/dialog/dialog.js +0 -155
  49. data/vendor/assets/javascripts/bower/codemirror/addon/display/fullscreen.css +0 -6
  50. data/vendor/assets/javascripts/bower/codemirror/addon/display/fullscreen.js +0 -41
  51. data/vendor/assets/javascripts/bower/codemirror/addon/display/panel.js +0 -94
  52. data/vendor/assets/javascripts/bower/codemirror/addon/display/placeholder.js +0 -58
  53. data/vendor/assets/javascripts/bower/codemirror/addon/display/rulers.js +0 -64
  54. data/vendor/assets/javascripts/bower/codemirror/addon/edit/closebrackets.js +0 -159
  55. data/vendor/assets/javascripts/bower/codemirror/addon/edit/closetag.js +0 -159
  56. data/vendor/assets/javascripts/bower/codemirror/addon/edit/continuelist.js +0 -51
  57. data/vendor/assets/javascripts/bower/codemirror/addon/edit/matchbrackets.js +0 -120
  58. data/vendor/assets/javascripts/bower/codemirror/addon/edit/matchtags.js +0 -66
  59. data/vendor/assets/javascripts/bower/codemirror/addon/edit/trailingspace.js +0 -27
  60. data/vendor/assets/javascripts/bower/codemirror/addon/fold/brace-fold.js +0 -105
  61. data/vendor/assets/javascripts/bower/codemirror/addon/fold/comment-fold.js +0 -57
  62. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldcode.js +0 -145
  63. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldgutter.css +0 -20
  64. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldgutter.js +0 -134
  65. data/vendor/assets/javascripts/bower/codemirror/addon/fold/indent-fold.js +0 -44
  66. data/vendor/assets/javascripts/bower/codemirror/addon/fold/markdown-fold.js +0 -49
  67. data/vendor/assets/javascripts/bower/codemirror/addon/fold/xml-fold.js +0 -182
  68. data/vendor/assets/javascripts/bower/codemirror/addon/hint/anyword-hint.js +0 -41
  69. data/vendor/assets/javascripts/bower/codemirror/addon/hint/css-hint.js +0 -56
  70. data/vendor/assets/javascripts/bower/codemirror/addon/hint/html-hint.js +0 -348
  71. data/vendor/assets/javascripts/bower/codemirror/addon/hint/javascript-hint.js +0 -146
  72. data/vendor/assets/javascripts/bower/codemirror/addon/hint/show-hint.css +0 -38
  73. data/vendor/assets/javascripts/bower/codemirror/addon/hint/show-hint.js +0 -389
  74. data/vendor/assets/javascripts/bower/codemirror/addon/hint/sql-hint.js +0 -197
  75. data/vendor/assets/javascripts/bower/codemirror/addon/hint/xml-hint.js +0 -110
  76. data/vendor/assets/javascripts/bower/codemirror/addon/lint/coffeescript-lint.js +0 -41
  77. data/vendor/assets/javascripts/bower/codemirror/addon/lint/css-lint.js +0 -35
  78. data/vendor/assets/javascripts/bower/codemirror/addon/lint/javascript-lint.js +0 -136
  79. data/vendor/assets/javascripts/bower/codemirror/addon/lint/json-lint.js +0 -31
  80. data/vendor/assets/javascripts/bower/codemirror/addon/lint/lint.css +0 -73
  81. data/vendor/assets/javascripts/bower/codemirror/addon/lint/lint.js +0 -204
  82. data/vendor/assets/javascripts/bower/codemirror/addon/lint/yaml-lint.js +0 -28
  83. data/vendor/assets/javascripts/bower/codemirror/addon/merge/merge.css +0 -112
  84. data/vendor/assets/javascripts/bower/codemirror/addon/merge/merge.js +0 -643
  85. data/vendor/assets/javascripts/bower/codemirror/addon/mode/loadmode.js +0 -64
  86. data/vendor/assets/javascripts/bower/codemirror/addon/mode/multiplex.js +0 -118
  87. data/vendor/assets/javascripts/bower/codemirror/addon/mode/multiplex_test.js +0 -33
  88. data/vendor/assets/javascripts/bower/codemirror/addon/mode/overlay.js +0 -85
  89. data/vendor/assets/javascripts/bower/codemirror/addon/mode/simple.js +0 -213
  90. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/colorize.js +0 -40
  91. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode-standalone.js +0 -157
  92. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode.js +0 -72
  93. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode.node.js +0 -120
  94. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/annotatescrollbar.js +0 -76
  95. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/scrollpastend.js +0 -46
  96. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/simplescrollbars.css +0 -66
  97. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/simplescrollbars.js +0 -139
  98. data/vendor/assets/javascripts/bower/codemirror/addon/search/match-highlighter.js +0 -128
  99. data/vendor/assets/javascripts/bower/codemirror/addon/search/matchesonscrollbar.css +0 -8
  100. data/vendor/assets/javascripts/bower/codemirror/addon/search/matchesonscrollbar.js +0 -90
  101. data/vendor/assets/javascripts/bower/codemirror/addon/search/search.js +0 -164
  102. data/vendor/assets/javascripts/bower/codemirror/addon/search/searchcursor.js +0 -189
  103. data/vendor/assets/javascripts/bower/codemirror/addon/selection/active-line.js +0 -71
  104. data/vendor/assets/javascripts/bower/codemirror/addon/selection/mark-selection.js +0 -118
  105. data/vendor/assets/javascripts/bower/codemirror/addon/tern/tern.css +0 -86
  106. data/vendor/assets/javascripts/bower/codemirror/addon/tern/tern.js +0 -670
  107. data/vendor/assets/javascripts/bower/codemirror/addon/tern/worker.js +0 -44
  108. data/vendor/assets/javascripts/bower/codemirror/addon/wrap/hardwrap.js +0 -139
  109. data/vendor/assets/javascripts/bower/codemirror/keymap/emacs.js +0 -411
  110. data/vendor/assets/javascripts/bower/codemirror/keymap/sublime.js +0 -540
  111. data/vendor/assets/javascripts/bower/codemirror/keymap/vim.js +0 -4901
  112. data/vendor/assets/javascripts/bower/codemirror/mode/apl/apl.js +0 -175
  113. data/vendor/assets/javascripts/bower/codemirror/mode/asterisk/asterisk.js +0 -198
  114. data/vendor/assets/javascripts/bower/codemirror/mode/clike/clike.js +0 -489
  115. data/vendor/assets/javascripts/bower/codemirror/mode/clike/scala.html +0 -767
  116. data/vendor/assets/javascripts/bower/codemirror/mode/clojure/clojure.js +0 -243
  117. data/vendor/assets/javascripts/bower/codemirror/mode/cobol/cobol.js +0 -255
  118. data/vendor/assets/javascripts/bower/codemirror/mode/coffeescript/coffeescript.js +0 -369
  119. data/vendor/assets/javascripts/bower/codemirror/mode/commonlisp/commonlisp.js +0 -122
  120. data/vendor/assets/javascripts/bower/codemirror/mode/css/css.js +0 -717
  121. data/vendor/assets/javascripts/bower/codemirror/mode/css/less.html +0 -152
  122. data/vendor/assets/javascripts/bower/codemirror/mode/css/less_test.js +0 -51
  123. data/vendor/assets/javascripts/bower/codemirror/mode/css/scss.html +0 -157
  124. data/vendor/assets/javascripts/bower/codemirror/mode/css/scss_test.js +0 -110
  125. data/vendor/assets/javascripts/bower/codemirror/mode/css/test.js +0 -135
  126. data/vendor/assets/javascripts/bower/codemirror/mode/cypher/cypher.js +0 -146
  127. data/vendor/assets/javascripts/bower/codemirror/mode/d/d.js +0 -218
  128. data/vendor/assets/javascripts/bower/codemirror/mode/dart/dart.js +0 -50
  129. data/vendor/assets/javascripts/bower/codemirror/mode/diff/diff.js +0 -47
  130. data/vendor/assets/javascripts/bower/codemirror/mode/django/django.js +0 -67
  131. data/vendor/assets/javascripts/bower/codemirror/mode/dockerfile/dockerfile.js +0 -76
  132. data/vendor/assets/javascripts/bower/codemirror/mode/dtd/dtd.js +0 -142
  133. data/vendor/assets/javascripts/bower/codemirror/mode/dylan/dylan.js +0 -299
  134. data/vendor/assets/javascripts/bower/codemirror/mode/ebnf/ebnf.js +0 -195
  135. data/vendor/assets/javascripts/bower/codemirror/mode/ecl/ecl.js +0 -207
  136. data/vendor/assets/javascripts/bower/codemirror/mode/eiffel/eiffel.js +0 -162
  137. data/vendor/assets/javascripts/bower/codemirror/mode/erlang/erlang.js +0 -622
  138. data/vendor/assets/javascripts/bower/codemirror/mode/fortran/fortran.js +0 -188
  139. data/vendor/assets/javascripts/bower/codemirror/mode/gas/gas.js +0 -345
  140. data/vendor/assets/javascripts/bower/codemirror/mode/gfm/gfm.js +0 -123
  141. data/vendor/assets/javascripts/bower/codemirror/mode/gfm/test.js +0 -213
  142. data/vendor/assets/javascripts/bower/codemirror/mode/gherkin/gherkin.js +0 -178
  143. data/vendor/assets/javascripts/bower/codemirror/mode/go/go.js +0 -184
  144. data/vendor/assets/javascripts/bower/codemirror/mode/groovy/groovy.js +0 -226
  145. data/vendor/assets/javascripts/bower/codemirror/mode/haml/haml.js +0 -159
  146. data/vendor/assets/javascripts/bower/codemirror/mode/haml/test.js +0 -97
  147. data/vendor/assets/javascripts/bower/codemirror/mode/haskell/haskell.js +0 -267
  148. data/vendor/assets/javascripts/bower/codemirror/mode/haxe/haxe.js +0 -518
  149. data/vendor/assets/javascripts/bower/codemirror/mode/htmlembedded/htmlembedded.js +0 -86
  150. data/vendor/assets/javascripts/bower/codemirror/mode/htmlmixed/htmlmixed.js +0 -121
  151. data/vendor/assets/javascripts/bower/codemirror/mode/http/http.js +0 -113
  152. data/vendor/assets/javascripts/bower/codemirror/mode/idl/idl.js +0 -290
  153. data/vendor/assets/javascripts/bower/codemirror/mode/jade/jade.js +0 -590
  154. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/javascript.js +0 -686
  155. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/json-ld.html +0 -72
  156. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/test.js +0 -200
  157. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/typescript.html +0 -61
  158. data/vendor/assets/javascripts/bower/codemirror/mode/jinja2/jinja2.js +0 -142
  159. data/vendor/assets/javascripts/bower/codemirror/mode/julia/julia.js +0 -301
  160. data/vendor/assets/javascripts/bower/codemirror/mode/kotlin/kotlin.js +0 -280
  161. data/vendor/assets/javascripts/bower/codemirror/mode/livescript/livescript.js +0 -280
  162. data/vendor/assets/javascripts/bower/codemirror/mode/lua/lua.js +0 -159
  163. data/vendor/assets/javascripts/bower/codemirror/mode/markdown/markdown.js +0 -765
  164. data/vendor/assets/javascripts/bower/codemirror/mode/markdown/test.js +0 -754
  165. data/vendor/assets/javascripts/bower/codemirror/mode/meta.js +0 -165
  166. data/vendor/assets/javascripts/bower/codemirror/mode/mirc/mirc.js +0 -193
  167. data/vendor/assets/javascripts/bower/codemirror/mode/mllike/mllike.js +0 -205
  168. data/vendor/assets/javascripts/bower/codemirror/mode/modelica/modelica.js +0 -245
  169. data/vendor/assets/javascripts/bower/codemirror/mode/nginx/nginx.js +0 -178
  170. data/vendor/assets/javascripts/bower/codemirror/mode/ntriples/ntriples.js +0 -186
  171. data/vendor/assets/javascripts/bower/codemirror/mode/octave/octave.js +0 -135
  172. data/vendor/assets/javascripts/bower/codemirror/mode/pascal/pascal.js +0 -109
  173. data/vendor/assets/javascripts/bower/codemirror/mode/pegjs/pegjs.js +0 -114
  174. data/vendor/assets/javascripts/bower/codemirror/mode/perl/perl.js +0 -832
  175. data/vendor/assets/javascripts/bower/codemirror/mode/php/php.js +0 -226
  176. data/vendor/assets/javascripts/bower/codemirror/mode/php/test.js +0 -154
  177. data/vendor/assets/javascripts/bower/codemirror/mode/pig/pig.js +0 -188
  178. data/vendor/assets/javascripts/bower/codemirror/mode/properties/properties.js +0 -78
  179. data/vendor/assets/javascripts/bower/codemirror/mode/puppet/puppet.js +0 -220
  180. data/vendor/assets/javascripts/bower/codemirror/mode/python/python.js +0 -359
  181. data/vendor/assets/javascripts/bower/codemirror/mode/q/q.js +0 -139
  182. data/vendor/assets/javascripts/bower/codemirror/mode/r/r.js +0 -162
  183. data/vendor/assets/javascripts/bower/codemirror/mode/rpm/rpm.js +0 -101
  184. data/vendor/assets/javascripts/bower/codemirror/mode/rst/rst.js +0 -557
  185. data/vendor/assets/javascripts/bower/codemirror/mode/ruby/ruby.js +0 -285
  186. data/vendor/assets/javascripts/bower/codemirror/mode/ruby/test.js +0 -14
  187. data/vendor/assets/javascripts/bower/codemirror/mode/rust/rust.js +0 -451
  188. data/vendor/assets/javascripts/bower/codemirror/mode/sass/sass.js +0 -327
  189. data/vendor/assets/javascripts/bower/codemirror/mode/scheme/scheme.js +0 -248
  190. data/vendor/assets/javascripts/bower/codemirror/mode/shell/shell.js +0 -139
  191. data/vendor/assets/javascripts/bower/codemirror/mode/shell/test.js +0 -58
  192. data/vendor/assets/javascripts/bower/codemirror/mode/sieve/sieve.js +0 -193
  193. data/vendor/assets/javascripts/bower/codemirror/mode/slim/slim.js +0 -575
  194. data/vendor/assets/javascripts/bower/codemirror/mode/slim/test.js +0 -96
  195. data/vendor/assets/javascripts/bower/codemirror/mode/smalltalk/smalltalk.js +0 -168
  196. data/vendor/assets/javascripts/bower/codemirror/mode/smarty/smarty.js +0 -221
  197. data/vendor/assets/javascripts/bower/codemirror/mode/smartymixed/smartymixed.js +0 -197
  198. data/vendor/assets/javascripts/bower/codemirror/mode/solr/solr.js +0 -104
  199. data/vendor/assets/javascripts/bower/codemirror/mode/soy/soy.js +0 -198
  200. data/vendor/assets/javascripts/bower/codemirror/mode/sparql/sparql.js +0 -174
  201. data/vendor/assets/javascripts/bower/codemirror/mode/spreadsheet/spreadsheet.js +0 -109
  202. data/vendor/assets/javascripts/bower/codemirror/mode/sql/sql.js +0 -391
  203. data/vendor/assets/javascripts/bower/codemirror/mode/stex/stex.js +0 -251
  204. data/vendor/assets/javascripts/bower/codemirror/mode/stex/test.js +0 -123
  205. data/vendor/assets/javascripts/bower/codemirror/mode/tcl/tcl.js +0 -147
  206. data/vendor/assets/javascripts/bower/codemirror/mode/textile/test.js +0 -417
  207. data/vendor/assets/javascripts/bower/codemirror/mode/textile/textile.js +0 -469
  208. data/vendor/assets/javascripts/bower/codemirror/mode/tiddlywiki/tiddlywiki.css +0 -14
  209. data/vendor/assets/javascripts/bower/codemirror/mode/tiddlywiki/tiddlywiki.js +0 -369
  210. data/vendor/assets/javascripts/bower/codemirror/mode/tiki/tiki.css +0 -26
  211. data/vendor/assets/javascripts/bower/codemirror/mode/tiki/tiki.js +0 -323
  212. data/vendor/assets/javascripts/bower/codemirror/mode/toml/toml.js +0 -88
  213. data/vendor/assets/javascripts/bower/codemirror/mode/tornado/tornado.js +0 -68
  214. data/vendor/assets/javascripts/bower/codemirror/mode/turtle/turtle.js +0 -162
  215. data/vendor/assets/javascripts/bower/codemirror/mode/vb/vb.js +0 -274
  216. data/vendor/assets/javascripts/bower/codemirror/mode/vbscript/vbscript.js +0 -350
  217. data/vendor/assets/javascripts/bower/codemirror/mode/velocity/velocity.js +0 -201
  218. data/vendor/assets/javascripts/bower/codemirror/mode/verilog/test.js +0 -273
  219. data/vendor/assets/javascripts/bower/codemirror/mode/verilog/verilog.js +0 -364
  220. data/vendor/assets/javascripts/bower/codemirror/mode/xml/test.js +0 -51
  221. data/vendor/assets/javascripts/bower/codemirror/mode/xml/xml.js +0 -384
  222. data/vendor/assets/javascripts/bower/codemirror/mode/xquery/test.js +0 -67
  223. data/vendor/assets/javascripts/bower/codemirror/mode/xquery/xquery.js +0 -447
  224. data/vendor/assets/javascripts/bower/codemirror/mode/yaml/yaml.js +0 -117
  225. data/vendor/assets/javascripts/bower/codemirror/mode/z80/z80.js +0 -100
  226. data/vendor/assets/javascripts/bower/vue/LICENSE +0 -21
  227. data/vendor/assets/javascripts/bower/vue/src/api/child.js +0 -53
  228. data/vendor/assets/javascripts/bower/vue/src/api/data.js +0 -161
  229. data/vendor/assets/javascripts/bower/vue/src/api/dom.js +0 -211
  230. data/vendor/assets/javascripts/bower/vue/src/api/events.js +0 -176
  231. data/vendor/assets/javascripts/bower/vue/src/api/global.js +0 -146
  232. data/vendor/assets/javascripts/bower/vue/src/api/lifecycle.js +0 -72
  233. data/vendor/assets/javascripts/bower/vue/src/batcher.js +0 -65
  234. data/vendor/assets/javascripts/bower/vue/src/cache.js +0 -112
  235. data/vendor/assets/javascripts/bower/vue/src/compiler/compile.js +0 -549
  236. data/vendor/assets/javascripts/bower/vue/src/compiler/transclude.js +0 -146
  237. data/vendor/assets/javascripts/bower/vue/src/config.js +0 -79
  238. data/vendor/assets/javascripts/bower/vue/src/directive.js +0 -219
  239. data/vendor/assets/javascripts/bower/vue/src/directives/attr.js +0 -32
  240. data/vendor/assets/javascripts/bower/vue/src/directives/class.js +0 -18
  241. data/vendor/assets/javascripts/bower/vue/src/directives/cloak.js +0 -12
  242. data/vendor/assets/javascripts/bower/vue/src/directives/component.js +0 -196
  243. data/vendor/assets/javascripts/bower/vue/src/directives/el.js +0 -13
  244. data/vendor/assets/javascripts/bower/vue/src/directives/html.js +0 -38
  245. data/vendor/assets/javascripts/bower/vue/src/directives/if.js +0 -87
  246. data/vendor/assets/javascripts/bower/vue/src/directives/index.js +0 -22
  247. data/vendor/assets/javascripts/bower/vue/src/directives/model/checkbox.js +0 -25
  248. data/vendor/assets/javascripts/bower/vue/src/directives/model/default.js +0 -123
  249. data/vendor/assets/javascripts/bower/vue/src/directives/model/index.js +0 -56
  250. data/vendor/assets/javascripts/bower/vue/src/directives/model/radio.js +0 -26
  251. data/vendor/assets/javascripts/bower/vue/src/directives/model/select.js +0 -166
  252. data/vendor/assets/javascripts/bower/vue/src/directives/on.js +0 -59
  253. data/vendor/assets/javascripts/bower/vue/src/directives/partial.js +0 -44
  254. data/vendor/assets/javascripts/bower/vue/src/directives/ref.js +0 -24
  255. data/vendor/assets/javascripts/bower/vue/src/directives/repeat.js +0 -503
  256. data/vendor/assets/javascripts/bower/vue/src/directives/show.js +0 -8
  257. data/vendor/assets/javascripts/bower/vue/src/directives/style.js +0 -58
  258. data/vendor/assets/javascripts/bower/vue/src/directives/text.js +0 -15
  259. data/vendor/assets/javascripts/bower/vue/src/directives/transition.js +0 -12
  260. data/vendor/assets/javascripts/bower/vue/src/directives/with.js +0 -47
  261. data/vendor/assets/javascripts/bower/vue/src/filters/array-filters.js +0 -87
  262. data/vendor/assets/javascripts/bower/vue/src/filters/index.js +0 -135
  263. data/vendor/assets/javascripts/bower/vue/src/instance/compile.js +0 -179
  264. data/vendor/assets/javascripts/bower/vue/src/instance/events.js +0 -122
  265. data/vendor/assets/javascripts/bower/vue/src/instance/init.js +0 -76
  266. data/vendor/assets/javascripts/bower/vue/src/instance/scope.js +0 -217
  267. data/vendor/assets/javascripts/bower/vue/src/observer/array.js +0 -90
  268. data/vendor/assets/javascripts/bower/vue/src/observer/dep.js +0 -50
  269. data/vendor/assets/javascripts/bower/vue/src/observer/index.js +0 -235
  270. data/vendor/assets/javascripts/bower/vue/src/observer/object.js +0 -66
  271. data/vendor/assets/javascripts/bower/vue/src/parsers/directive.js +0 -159
  272. data/vendor/assets/javascripts/bower/vue/src/parsers/expression.js +0 -226
  273. data/vendor/assets/javascripts/bower/vue/src/parsers/path.js +0 -300
  274. data/vendor/assets/javascripts/bower/vue/src/parsers/template.js +0 -248
  275. data/vendor/assets/javascripts/bower/vue/src/parsers/text.js +0 -178
  276. data/vendor/assets/javascripts/bower/vue/src/transition/css.js +0 -189
  277. data/vendor/assets/javascripts/bower/vue/src/transition/index.js +0 -151
  278. data/vendor/assets/javascripts/bower/vue/src/transition/js.js +0 -43
  279. data/vendor/assets/javascripts/bower/vue/src/util/debug.js +0 -50
  280. data/vendor/assets/javascripts/bower/vue/src/util/dom.js +0 -197
  281. data/vendor/assets/javascripts/bower/vue/src/util/env.js +0 -74
  282. data/vendor/assets/javascripts/bower/vue/src/util/filter.js +0 -72
  283. data/vendor/assets/javascripts/bower/vue/src/util/index.js +0 -8
  284. data/vendor/assets/javascripts/bower/vue/src/util/lang.js +0 -175
  285. data/vendor/assets/javascripts/bower/vue/src/util/merge-option.js +0 -255
  286. data/vendor/assets/javascripts/bower/vue/src/vue.js +0 -84
  287. data/vendor/assets/javascripts/bower/vue/src/watcher.js +0 -240
@@ -1,6 +0,0 @@
1
- .CodeMirror-fullscreen {
2
- position: fixed;
3
- top: 0; left: 0; right: 0; bottom: 0;
4
- height: auto;
5
- z-index: 9;
6
- }
@@ -1,41 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- (function(mod) {
5
- if (typeof exports == "object" && typeof module == "object") // CommonJS
6
- mod(require("../../lib/codemirror"));
7
- else if (typeof define == "function" && define.amd) // AMD
8
- define(["../../lib/codemirror"], mod);
9
- else // Plain browser env
10
- mod(CodeMirror);
11
- })(function(CodeMirror) {
12
- "use strict";
13
-
14
- CodeMirror.defineOption("fullScreen", false, function(cm, val, old) {
15
- if (old == CodeMirror.Init) old = false;
16
- if (!old == !val) return;
17
- if (val) setFullscreen(cm);
18
- else setNormal(cm);
19
- });
20
-
21
- function setFullscreen(cm) {
22
- var wrap = cm.getWrapperElement();
23
- cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,
24
- width: wrap.style.width, height: wrap.style.height};
25
- wrap.style.width = "";
26
- wrap.style.height = "auto";
27
- wrap.className += " CodeMirror-fullscreen";
28
- document.documentElement.style.overflow = "hidden";
29
- cm.refresh();
30
- }
31
-
32
- function setNormal(cm) {
33
- var wrap = cm.getWrapperElement();
34
- wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, "");
35
- document.documentElement.style.overflow = "";
36
- var info = cm.state.fullScreenRestore;
37
- wrap.style.width = info.width; wrap.style.height = info.height;
38
- window.scrollTo(info.scrollLeft, info.scrollTop);
39
- cm.refresh();
40
- }
41
- });
@@ -1,94 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- (function(mod) {
5
- if (typeof exports == "object" && typeof module == "object") // CommonJS
6
- mod(require("../../lib/codemirror"));
7
- else if (typeof define == "function" && define.amd) // AMD
8
- define(["../../lib/codemirror"], mod);
9
- else // Plain browser env
10
- mod(CodeMirror);
11
- })(function(CodeMirror) {
12
- CodeMirror.defineExtension("addPanel", function(node, options) {
13
- if (!this.state.panels) initPanels(this);
14
-
15
- var info = this.state.panels;
16
- if (options && options.position == "bottom")
17
- info.wrapper.appendChild(node);
18
- else
19
- info.wrapper.insertBefore(node, info.wrapper.firstChild);
20
- var height = (options && options.height) || node.offsetHeight;
21
- this._setSize(null, info.heightLeft -= height);
22
- info.panels++;
23
- return new Panel(this, node, options, height);
24
- });
25
-
26
- function Panel(cm, node, options, height) {
27
- this.cm = cm;
28
- this.node = node;
29
- this.options = options;
30
- this.height = height;
31
- this.cleared = false;
32
- }
33
-
34
- Panel.prototype.clear = function() {
35
- if (this.cleared) return;
36
- this.cleared = true;
37
- var info = this.cm.state.panels;
38
- this.cm._setSize(null, info.heightLeft += this.height);
39
- info.wrapper.removeChild(this.node);
40
- if (--info.panels == 0) removePanels(this.cm);
41
- };
42
-
43
- Panel.prototype.changed = function(height) {
44
- var newHeight = height == null ? this.node.offsetHeight : height;
45
- var info = this.cm.state.panels;
46
- this.cm._setSize(null, info.height += (newHeight - this.height));
47
- this.height = newHeight;
48
- };
49
-
50
- function initPanels(cm) {
51
- var wrap = cm.getWrapperElement();
52
- var style = window.getComputedStyle ? window.getComputedStyle(wrap) : wrap.currentStyle;
53
- var height = parseInt(style.height);
54
- var info = cm.state.panels = {
55
- setHeight: wrap.style.height,
56
- heightLeft: height,
57
- panels: 0,
58
- wrapper: document.createElement("div")
59
- };
60
- wrap.parentNode.insertBefore(info.wrapper, wrap);
61
- var hasFocus = cm.hasFocus();
62
- info.wrapper.appendChild(wrap);
63
- if (hasFocus) cm.focus();
64
-
65
- cm._setSize = cm.setSize;
66
- if (height != null) cm.setSize = function(width, newHeight) {
67
- if (newHeight == null) return this._setSize(width, newHeight);
68
- info.setHeight = newHeight;
69
- if (typeof newHeight != "number") {
70
- var px = /^(\d+\.?\d*)px$/.exec(newHeight);
71
- if (px) {
72
- newHeight = Number(px[1]);
73
- } else {
74
- info.wrapper.style.height = newHeight;
75
- newHeight = info.wrapper.offsetHeight;
76
- info.wrapper.style.height = "";
77
- }
78
- }
79
- cm._setSize(width, info.heightLeft += (newHeight - height));
80
- height = newHeight;
81
- };
82
- }
83
-
84
- function removePanels(cm) {
85
- var info = cm.state.panels;
86
- cm.state.panels = null;
87
-
88
- var wrap = cm.getWrapperElement();
89
- info.wrapper.parentNode.replaceChild(wrap, info.wrapper);
90
- wrap.style.height = info.setHeight;
91
- cm.setSize = cm._setSize;
92
- cm.setSize();
93
- }
94
- });
@@ -1,58 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- (function(mod) {
5
- if (typeof exports == "object" && typeof module == "object") // CommonJS
6
- mod(require("../../lib/codemirror"));
7
- else if (typeof define == "function" && define.amd) // AMD
8
- define(["../../lib/codemirror"], mod);
9
- else // Plain browser env
10
- mod(CodeMirror);
11
- })(function(CodeMirror) {
12
- CodeMirror.defineOption("placeholder", "", function(cm, val, old) {
13
- var prev = old && old != CodeMirror.Init;
14
- if (val && !prev) {
15
- cm.on("blur", onBlur);
16
- cm.on("change", onChange);
17
- onChange(cm);
18
- } else if (!val && prev) {
19
- cm.off("blur", onBlur);
20
- cm.off("change", onChange);
21
- clearPlaceholder(cm);
22
- var wrapper = cm.getWrapperElement();
23
- wrapper.className = wrapper.className.replace(" CodeMirror-empty", "");
24
- }
25
-
26
- if (val && !cm.hasFocus()) onBlur(cm);
27
- });
28
-
29
- function clearPlaceholder(cm) {
30
- if (cm.state.placeholder) {
31
- cm.state.placeholder.parentNode.removeChild(cm.state.placeholder);
32
- cm.state.placeholder = null;
33
- }
34
- }
35
- function setPlaceholder(cm) {
36
- clearPlaceholder(cm);
37
- var elt = cm.state.placeholder = document.createElement("pre");
38
- elt.style.cssText = "height: 0; overflow: visible";
39
- elt.className = "CodeMirror-placeholder";
40
- elt.appendChild(document.createTextNode(cm.getOption("placeholder")));
41
- cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild);
42
- }
43
-
44
- function onBlur(cm) {
45
- if (isEmpty(cm)) setPlaceholder(cm);
46
- }
47
- function onChange(cm) {
48
- var wrapper = cm.getWrapperElement(), empty = isEmpty(cm);
49
- wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : "");
50
-
51
- if (empty) setPlaceholder(cm);
52
- else clearPlaceholder(cm);
53
- }
54
-
55
- function isEmpty(cm) {
56
- return (cm.lineCount() === 1) && (cm.getLine(0) === "");
57
- }
58
- });
@@ -1,64 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- (function(mod) {
5
- if (typeof exports == "object" && typeof module == "object") // CommonJS
6
- mod(require("../../lib/codemirror"));
7
- else if (typeof define == "function" && define.amd) // AMD
8
- define(["../../lib/codemirror"], mod);
9
- else // Plain browser env
10
- mod(CodeMirror);
11
- })(function(CodeMirror) {
12
- "use strict";
13
-
14
- CodeMirror.defineOption("rulers", false, function(cm, val, old) {
15
- if (old && old != CodeMirror.Init) {
16
- clearRulers(cm);
17
- cm.off("refresh", refreshRulers);
18
- }
19
- if (val && val.length) {
20
- setRulers(cm);
21
- cm.on("refresh", refreshRulers);
22
- }
23
- });
24
-
25
- function clearRulers(cm) {
26
- for (var i = cm.display.lineSpace.childNodes.length - 1; i >= 0; i--) {
27
- var node = cm.display.lineSpace.childNodes[i];
28
- if (/(^|\s)CodeMirror-ruler($|\s)/.test(node.className))
29
- node.parentNode.removeChild(node);
30
- }
31
- }
32
-
33
- function setRulers(cm) {
34
- var val = cm.getOption("rulers");
35
- var cw = cm.defaultCharWidth();
36
- var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), "div").left;
37
- var minH = cm.display.scroller.offsetHeight + 30;
38
- for (var i = 0; i < val.length; i++) {
39
- var elt = document.createElement("div");
40
- elt.className = "CodeMirror-ruler";
41
- var col, cls = null, conf = val[i];
42
- if (typeof conf == "number") {
43
- col = conf;
44
- } else {
45
- col = conf.column;
46
- if (conf.className) elt.className += " " + conf.className;
47
- if (conf.color) elt.style.borderColor = conf.color;
48
- if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle;
49
- if (conf.width) elt.style.borderLeftWidth = conf.width;
50
- cls = val[i].className;
51
- }
52
- elt.style.left = (left + col * cw) + "px";
53
- elt.style.top = "-50px";
54
- elt.style.bottom = "-20px";
55
- elt.style.minHeight = minH + "px";
56
- cm.display.lineSpace.insertBefore(elt, cm.display.cursorDiv);
57
- }
58
- }
59
-
60
- function refreshRulers(cm) {
61
- clearRulers(cm);
62
- setRulers(cm);
63
- }
64
- });
@@ -1,159 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- (function(mod) {
5
- if (typeof exports == "object" && typeof module == "object") // CommonJS
6
- mod(require("../../lib/codemirror"));
7
- else if (typeof define == "function" && define.amd) // AMD
8
- define(["../../lib/codemirror"], mod);
9
- else // Plain browser env
10
- mod(CodeMirror);
11
- })(function(CodeMirror) {
12
- var DEFAULT_BRACKETS = "()[]{}''\"\"";
13
- var DEFAULT_EXPLODE_ON_ENTER = "[]{}";
14
- var SPACE_CHAR_REGEX = /\s/;
15
-
16
- var Pos = CodeMirror.Pos;
17
-
18
- CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) {
19
- if (old != CodeMirror.Init && old)
20
- cm.removeKeyMap("autoCloseBrackets");
21
- if (!val) return;
22
- var pairs = DEFAULT_BRACKETS, explode = DEFAULT_EXPLODE_ON_ENTER;
23
- if (typeof val == "string") pairs = val;
24
- else if (typeof val == "object") {
25
- if (val.pairs != null) pairs = val.pairs;
26
- if (val.explode != null) explode = val.explode;
27
- }
28
- var map = buildKeymap(pairs);
29
- if (explode) map.Enter = buildExplodeHandler(explode);
30
- cm.addKeyMap(map);
31
- });
32
-
33
- function charsAround(cm, pos) {
34
- var str = cm.getRange(Pos(pos.line, pos.ch - 1),
35
- Pos(pos.line, pos.ch + 1));
36
- return str.length == 2 ? str : null;
37
- }
38
-
39
- // Project the token type that will exists after the given char is
40
- // typed, and use it to determine whether it would cause the start
41
- // of a string token.
42
- function enteringString(cm, pos, ch) {
43
- var line = cm.getLine(pos.line);
44
- var token = cm.getTokenAt(pos);
45
- if (/\bstring2?\b/.test(token.type)) return false;
46
- var stream = new CodeMirror.StringStream(line.slice(0, pos.ch) + ch + line.slice(pos.ch), 4);
47
- stream.pos = stream.start = token.start;
48
- for (;;) {
49
- var type1 = cm.getMode().token(stream, token.state);
50
- if (stream.pos >= pos.ch + 1) return /\bstring2?\b/.test(type1);
51
- stream.start = stream.pos;
52
- }
53
- }
54
-
55
- function buildKeymap(pairs) {
56
- var map = {
57
- name : "autoCloseBrackets",
58
- Backspace: function(cm) {
59
- if (cm.getOption("disableInput")) return CodeMirror.Pass;
60
- var ranges = cm.listSelections();
61
- for (var i = 0; i < ranges.length; i++) {
62
- if (!ranges[i].empty()) return CodeMirror.Pass;
63
- var around = charsAround(cm, ranges[i].head);
64
- if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;
65
- }
66
- for (var i = ranges.length - 1; i >= 0; i--) {
67
- var cur = ranges[i].head;
68
- cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1));
69
- }
70
- }
71
- };
72
- var closingBrackets = "";
73
- for (var i = 0; i < pairs.length; i += 2) (function(left, right) {
74
- closingBrackets += right;
75
- map["'" + left + "'"] = function(cm) {
76
- if (cm.getOption("disableInput")) return CodeMirror.Pass;
77
- var ranges = cm.listSelections(), type, next;
78
- for (var i = 0; i < ranges.length; i++) {
79
- var range = ranges[i], cur = range.head, curType;
80
- var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));
81
- if (!range.empty()) {
82
- curType = "surround";
83
- } else if (left == right && next == right) {
84
- if (cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == left + left + left)
85
- curType = "skipThree";
86
- else
87
- curType = "skip";
88
- } else if (left == right && cur.ch > 1 &&
89
- cm.getRange(Pos(cur.line, cur.ch - 2), cur) == left + left &&
90
- (cur.ch <= 2 || cm.getRange(Pos(cur.line, cur.ch - 3), Pos(cur.line, cur.ch - 2)) != left)) {
91
- curType = "addFour";
92
- } else if (left == '"' || left == "'") {
93
- if (!CodeMirror.isWordChar(next) && enteringString(cm, cur, left)) curType = "both";
94
- else return CodeMirror.Pass;
95
- } else if (cm.getLine(cur.line).length == cur.ch || closingBrackets.indexOf(next) >= 0 || SPACE_CHAR_REGEX.test(next)) {
96
- curType = "both";
97
- } else {
98
- return CodeMirror.Pass;
99
- }
100
- if (!type) type = curType;
101
- else if (type != curType) return CodeMirror.Pass;
102
- }
103
-
104
- cm.operation(function() {
105
- if (type == "skip") {
106
- cm.execCommand("goCharRight");
107
- } else if (type == "skipThree") {
108
- for (var i = 0; i < 3; i++)
109
- cm.execCommand("goCharRight");
110
- } else if (type == "surround") {
111
- var sels = cm.getSelections();
112
- for (var i = 0; i < sels.length; i++)
113
- sels[i] = left + sels[i] + right;
114
- cm.replaceSelections(sels, "around");
115
- } else if (type == "both") {
116
- cm.replaceSelection(left + right, null);
117
- cm.execCommand("goCharLeft");
118
- } else if (type == "addFour") {
119
- cm.replaceSelection(left + left + left + left, "before");
120
- cm.execCommand("goCharRight");
121
- }
122
- });
123
- };
124
- if (left != right) map["'" + right + "'"] = function(cm) {
125
- var ranges = cm.listSelections();
126
- for (var i = 0; i < ranges.length; i++) {
127
- var range = ranges[i];
128
- if (!range.empty() ||
129
- cm.getRange(range.head, Pos(range.head.line, range.head.ch + 1)) != right)
130
- return CodeMirror.Pass;
131
- }
132
- cm.execCommand("goCharRight");
133
- };
134
- })(pairs.charAt(i), pairs.charAt(i + 1));
135
- return map;
136
- }
137
-
138
- function buildExplodeHandler(pairs) {
139
- return function(cm) {
140
- if (cm.getOption("disableInput")) return CodeMirror.Pass;
141
- var ranges = cm.listSelections();
142
- for (var i = 0; i < ranges.length; i++) {
143
- if (!ranges[i].empty()) return CodeMirror.Pass;
144
- var around = charsAround(cm, ranges[i].head);
145
- if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;
146
- }
147
- cm.operation(function() {
148
- cm.replaceSelection("\n\n", null);
149
- cm.execCommand("goCharLeft");
150
- ranges = cm.listSelections();
151
- for (var i = 0; i < ranges.length; i++) {
152
- var line = ranges[i].head.line;
153
- cm.indentLine(line, null, true);
154
- cm.indentLine(line + 1, null, true);
155
- }
156
- });
157
- };
158
- }
159
- });
@@ -1,159 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- /**
5
- * Tag-closer extension for CodeMirror.
6
- *
7
- * This extension adds an "autoCloseTags" option that can be set to
8
- * either true to get the default behavior, or an object to further
9
- * configure its behavior.
10
- *
11
- * These are supported options:
12
- *
13
- * `whenClosing` (default true)
14
- * Whether to autoclose when the '/' of a closing tag is typed.
15
- * `whenOpening` (default true)
16
- * Whether to autoclose the tag when the final '>' of an opening
17
- * tag is typed.
18
- * `dontCloseTags` (default is empty tags for HTML, none for XML)
19
- * An array of tag names that should not be autoclosed.
20
- * `indentTags` (default is block tags for HTML, none for XML)
21
- * An array of tag names that should, when opened, cause a
22
- * blank line to be added inside the tag, and the blank line and
23
- * closing line to be indented.
24
- *
25
- * See demos/closetag.html for a usage example.
26
- */
27
-
28
- (function(mod) {
29
- if (typeof exports == "object" && typeof module == "object") // CommonJS
30
- mod(require("../../lib/codemirror"), require("../fold/xml-fold"));
31
- else if (typeof define == "function" && define.amd) // AMD
32
- define(["../../lib/codemirror", "../fold/xml-fold"], mod);
33
- else // Plain browser env
34
- mod(CodeMirror);
35
- })(function(CodeMirror) {
36
- CodeMirror.defineOption("autoCloseTags", false, function(cm, val, old) {
37
- if (old != CodeMirror.Init && old)
38
- cm.removeKeyMap("autoCloseTags");
39
- if (!val) return;
40
- var map = {name: "autoCloseTags"};
41
- if (typeof val != "object" || val.whenClosing)
42
- map["'/'"] = function(cm) { return autoCloseSlash(cm); };
43
- if (typeof val != "object" || val.whenOpening)
44
- map["'>'"] = function(cm) { return autoCloseGT(cm); };
45
- cm.addKeyMap(map);
46
- });
47
-
48
- var htmlDontClose = ["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param",
49
- "source", "track", "wbr"];
50
- var htmlIndent = ["applet", "blockquote", "body", "button", "div", "dl", "fieldset", "form", "frameset", "h1", "h2", "h3", "h4",
51
- "h5", "h6", "head", "html", "iframe", "layer", "legend", "object", "ol", "p", "select", "table", "ul"];
52
-
53
- function autoCloseGT(cm) {
54
- if (cm.getOption("disableInput")) return CodeMirror.Pass;
55
- var ranges = cm.listSelections(), replacements = [];
56
- for (var i = 0; i < ranges.length; i++) {
57
- if (!ranges[i].empty()) return CodeMirror.Pass;
58
- var pos = ranges[i].head, tok = cm.getTokenAt(pos);
59
- var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
60
- if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;
61
-
62
- var opt = cm.getOption("autoCloseTags"), html = inner.mode.configuration == "html";
63
- var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
64
- var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);
65
-
66
- var tagName = state.tagName;
67
- if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch);
68
- var lowerTagName = tagName.toLowerCase();
69
- // Don't process the '>' at the end of an end-tag or self-closing tag
70
- if (!tagName ||
71
- tok.type == "string" && (tok.end != pos.ch || !/[\"\']/.test(tok.string.charAt(tok.string.length - 1)) || tok.string.length == 1) ||
72
- tok.type == "tag" && state.type == "closeTag" ||
73
- tok.string.indexOf("/") == (tok.string.length - 1) || // match something like <someTagName />
74
- dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1 ||
75
- closingTagExists(cm, tagName, pos, state, true))
76
- return CodeMirror.Pass;
77
-
78
- var indent = indentTags && indexOf(indentTags, lowerTagName) > -1;
79
- replacements[i] = {indent: indent,
80
- text: ">" + (indent ? "\n\n" : "") + "</" + tagName + ">",
81
- newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};
82
- }
83
-
84
- for (var i = ranges.length - 1; i >= 0; i--) {
85
- var info = replacements[i];
86
- cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, "+insert");
87
- var sel = cm.listSelections().slice(0);
88
- sel[i] = {head: info.newPos, anchor: info.newPos};
89
- cm.setSelections(sel);
90
- if (info.indent) {
91
- cm.indentLine(info.newPos.line, null, true);
92
- cm.indentLine(info.newPos.line + 1, null, true);
93
- }
94
- }
95
- }
96
-
97
- function autoCloseSlash(cm) {
98
- if (cm.getOption("disableInput")) return CodeMirror.Pass;
99
- var ranges = cm.listSelections(), replacements = [];
100
- for (var i = 0; i < ranges.length; i++) {
101
- if (!ranges[i].empty()) return CodeMirror.Pass;
102
- var pos = ranges[i].head, tok = cm.getTokenAt(pos);
103
- var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
104
- if (tok.type == "string" || tok.string.charAt(0) != "<" ||
105
- tok.start != pos.ch - 1)
106
- return CodeMirror.Pass;
107
- // Kludge to get around the fact that we are not in XML mode
108
- // when completing in JS/CSS snippet in htmlmixed mode. Does not
109
- // work for other XML embedded languages (there is no general
110
- // way to go from a mixed mode to its current XML state).
111
- if (inner.mode.name != "xml") {
112
- if (cm.getMode().name == "htmlmixed" && inner.mode.name == "javascript")
113
- replacements[i] = "/script>";
114
- else if (cm.getMode().name == "htmlmixed" && inner.mode.name == "css")
115
- replacements[i] = "/style>";
116
- else
117
- return CodeMirror.Pass;
118
- } else {
119
- if (!state.context || !state.context.tagName ||
120
- closingTagExists(cm, state.context.tagName, pos, state))
121
- return CodeMirror.Pass;
122
- replacements[i] = "/" + state.context.tagName + ">";
123
- }
124
- }
125
- cm.replaceSelections(replacements);
126
- ranges = cm.listSelections();
127
- for (var i = 0; i < ranges.length; i++)
128
- if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)
129
- cm.indentLine(ranges[i].head.line);
130
- }
131
-
132
- function indexOf(collection, elt) {
133
- if (collection.indexOf) return collection.indexOf(elt);
134
- for (var i = 0, e = collection.length; i < e; ++i)
135
- if (collection[i] == elt) return i;
136
- return -1;
137
- }
138
-
139
- // If xml-fold is loaded, we use its functionality to try and verify
140
- // whether a given tag is actually unclosed.
141
- function closingTagExists(cm, tagName, pos, state, newTag) {
142
- if (!CodeMirror.scanForClosingTag) return false;
143
- var end = Math.min(cm.lastLine() + 1, pos.line + 500);
144
- var nextClose = CodeMirror.scanForClosingTag(cm, pos, null, end);
145
- if (!nextClose || nextClose.tag != tagName) return false;
146
- var cx = state.context;
147
- // If the immediate wrapping context contains onCx instances of
148
- // the same tag, a closing tag only exists if there are at least
149
- // that many closing tags of that type following.
150
- for (var onCx = newTag ? 1 : 0; cx && cx.tagName == tagName; cx = cx.prev) ++onCx;
151
- pos = nextClose.to;
152
- for (var i = 1; i < onCx; i++) {
153
- var next = CodeMirror.scanForClosingTag(cm, pos, null, end);
154
- if (!next || next.tag != tagName) return false;
155
- pos = next.to;
156
- }
157
- return true;
158
- }
159
- });