fluentd-ui 0.3.13 → 0.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,28 +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
- // Depends on js-yaml.js from https://github.com/nodeca/js-yaml
15
-
16
- // declare global: jsyaml
17
-
18
- CodeMirror.registerHelper("lint", "yaml", function(text) {
19
- var found = [];
20
- try { jsyaml.load(text); }
21
- catch(e) {
22
- var loc = e.mark;
23
- found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message });
24
- }
25
- return found;
26
- });
27
-
28
- });
@@ -1,112 +0,0 @@
1
- .CodeMirror-merge {
2
- position: relative;
3
- border: 1px solid #ddd;
4
- white-space: pre;
5
- }
6
-
7
- .CodeMirror-merge, .CodeMirror-merge .CodeMirror {
8
- height: 350px;
9
- }
10
-
11
- .CodeMirror-merge-2pane .CodeMirror-merge-pane { width: 47%; }
12
- .CodeMirror-merge-2pane .CodeMirror-merge-gap { width: 6%; }
13
- .CodeMirror-merge-3pane .CodeMirror-merge-pane { width: 31%; }
14
- .CodeMirror-merge-3pane .CodeMirror-merge-gap { width: 3.5%; }
15
-
16
- .CodeMirror-merge-pane {
17
- display: inline-block;
18
- white-space: normal;
19
- vertical-align: top;
20
- }
21
- .CodeMirror-merge-pane-rightmost {
22
- position: absolute;
23
- right: 0px;
24
- z-index: 1;
25
- }
26
-
27
- .CodeMirror-merge-gap {
28
- z-index: 2;
29
- display: inline-block;
30
- height: 100%;
31
- -moz-box-sizing: border-box;
32
- box-sizing: border-box;
33
- overflow: hidden;
34
- border-left: 1px solid #ddd;
35
- border-right: 1px solid #ddd;
36
- position: relative;
37
- background: #f8f8f8;
38
- }
39
-
40
- .CodeMirror-merge-scrolllock-wrap {
41
- position: absolute;
42
- bottom: 0; left: 50%;
43
- }
44
- .CodeMirror-merge-scrolllock {
45
- position: relative;
46
- left: -50%;
47
- cursor: pointer;
48
- color: #555;
49
- line-height: 1;
50
- }
51
-
52
- .CodeMirror-merge-copybuttons-left, .CodeMirror-merge-copybuttons-right {
53
- position: absolute;
54
- left: 0; top: 0;
55
- right: 0; bottom: 0;
56
- line-height: 1;
57
- }
58
-
59
- .CodeMirror-merge-copy {
60
- position: absolute;
61
- cursor: pointer;
62
- color: #44c;
63
- }
64
-
65
- .CodeMirror-merge-copy-reverse {
66
- position: absolute;
67
- cursor: pointer;
68
- color: #44c;
69
- }
70
-
71
- .CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy { left: 2px; }
72
- .CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy { right: 2px; }
73
-
74
- .CodeMirror-merge-r-inserted, .CodeMirror-merge-l-inserted {
75
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);
76
- background-position: bottom left;
77
- background-repeat: repeat-x;
78
- }
79
-
80
- .CodeMirror-merge-r-deleted, .CodeMirror-merge-l-deleted {
81
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);
82
- background-position: bottom left;
83
- background-repeat: repeat-x;
84
- }
85
-
86
- .CodeMirror-merge-r-chunk { background: #ffffe0; }
87
- .CodeMirror-merge-r-chunk-start { border-top: 1px solid #ee8; }
88
- .CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #ee8; }
89
- .CodeMirror-merge-r-connect { fill: #ffffe0; stroke: #ee8; stroke-width: 1px; }
90
-
91
- .CodeMirror-merge-l-chunk { background: #eef; }
92
- .CodeMirror-merge-l-chunk-start { border-top: 1px solid #88e; }
93
- .CodeMirror-merge-l-chunk-end { border-bottom: 1px solid #88e; }
94
- .CodeMirror-merge-l-connect { fill: #eef; stroke: #88e; stroke-width: 1px; }
95
-
96
- .CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk { background: #dfd; }
97
- .CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start { border-top: 1px solid #4e4; }
98
- .CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #4e4; }
99
-
100
- .CodeMirror-merge-collapsed-widget:before {
101
- content: "(...)";
102
- }
103
- .CodeMirror-merge-collapsed-widget {
104
- cursor: pointer;
105
- color: #88b;
106
- background: #eef;
107
- border: 1px solid #ddf;
108
- font-size: 90%;
109
- padding: 0 3px;
110
- border-radius: 4px;
111
- }
112
- .CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { display: none; }
@@ -1,643 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- // declare global: diff_match_patch, DIFF_INSERT, DIFF_DELETE, DIFF_EQUAL
5
-
6
- (function(mod) {
7
- if (typeof exports == "object" && typeof module == "object") // CommonJS
8
- mod(require("../../lib/codemirror"), require("diff_match_patch"));
9
- else if (typeof define == "function" && define.amd) // AMD
10
- define(["../../lib/codemirror", "diff_match_patch"], mod);
11
- else // Plain browser env
12
- mod(CodeMirror, diff_match_patch);
13
- })(function(CodeMirror, diff_match_patch) {
14
- "use strict";
15
- var Pos = CodeMirror.Pos;
16
- var svgNS = "http://www.w3.org/2000/svg";
17
-
18
- function DiffView(mv, type) {
19
- this.mv = mv;
20
- this.type = type;
21
- this.classes = type == "left"
22
- ? {chunk: "CodeMirror-merge-l-chunk",
23
- start: "CodeMirror-merge-l-chunk-start",
24
- end: "CodeMirror-merge-l-chunk-end",
25
- insert: "CodeMirror-merge-l-inserted",
26
- del: "CodeMirror-merge-l-deleted",
27
- connect: "CodeMirror-merge-l-connect"}
28
- : {chunk: "CodeMirror-merge-r-chunk",
29
- start: "CodeMirror-merge-r-chunk-start",
30
- end: "CodeMirror-merge-r-chunk-end",
31
- insert: "CodeMirror-merge-r-inserted",
32
- del: "CodeMirror-merge-r-deleted",
33
- connect: "CodeMirror-merge-r-connect"};
34
- if (mv.options.connect == "align")
35
- this.aligners = [];
36
- }
37
-
38
- DiffView.prototype = {
39
- constructor: DiffView,
40
- init: function(pane, orig, options) {
41
- this.edit = this.mv.edit;
42
- this.orig = CodeMirror(pane, copyObj({value: orig, readOnly: !this.mv.options.allowEditingOriginals}, copyObj(options)));
43
-
44
- this.diff = getDiff(asString(orig), asString(options.value));
45
- this.diffOutOfDate = false;
46
-
47
- this.showDifferences = options.showDifferences !== false;
48
- this.forceUpdate = registerUpdate(this);
49
- setScrollLock(this, true, false);
50
- registerScroll(this);
51
- },
52
- setShowDifferences: function(val) {
53
- val = val !== false;
54
- if (val != this.showDifferences) {
55
- this.showDifferences = val;
56
- this.forceUpdate("full");
57
- }
58
- }
59
- };
60
-
61
- function ensureDiff(dv) {
62
- if (dv.diffOutOfDate) {
63
- dv.diff = getDiff(dv.orig.getValue(), dv.edit.getValue());
64
- dv.diffOutOfDate = false;
65
- CodeMirror.signal(dv.edit, "updateDiff", dv.diff);
66
- }
67
- }
68
-
69
- function registerUpdate(dv) {
70
- var edit = {from: 0, to: 0, marked: []};
71
- var orig = {from: 0, to: 0, marked: []};
72
- var debounceChange;
73
- function update(mode) {
74
- if (mode == "full") {
75
- if (dv.svg) clear(dv.svg);
76
- if (dv.copyButtons) clear(dv.copyButtons);
77
- clearMarks(dv.edit, edit.marked, dv.classes);
78
- clearMarks(dv.orig, orig.marked, dv.classes);
79
- edit.from = edit.to = orig.from = orig.to = 0;
80
- }
81
- ensureDiff(dv);
82
- if (dv.showDifferences) {
83
- updateMarks(dv.edit, dv.diff, edit, DIFF_INSERT, dv.classes);
84
- updateMarks(dv.orig, dv.diff, orig, DIFF_DELETE, dv.classes);
85
- }
86
- makeConnections(dv);
87
- }
88
- function set(slow) {
89
- clearTimeout(debounceChange);
90
- debounceChange = setTimeout(update, slow == true ? 250 : 100);
91
- }
92
- function change() {
93
- if (!dv.diffOutOfDate) {
94
- dv.diffOutOfDate = true;
95
- edit.from = edit.to = orig.from = orig.to = 0;
96
- }
97
- set(true);
98
- }
99
- dv.edit.on("change", change);
100
- dv.orig.on("change", change);
101
- dv.edit.on("markerAdded", set);
102
- dv.edit.on("markerCleared", set);
103
- dv.orig.on("markerAdded", set);
104
- dv.orig.on("markerCleared", set);
105
- dv.edit.on("viewportChange", set);
106
- dv.orig.on("viewportChange", set);
107
- update();
108
- return update;
109
- }
110
-
111
- function registerScroll(dv) {
112
- dv.edit.on("scroll", function() {
113
- syncScroll(dv, DIFF_INSERT) && makeConnections(dv);
114
- });
115
- dv.orig.on("scroll", function() {
116
- syncScroll(dv, DIFF_DELETE) && makeConnections(dv);
117
- });
118
- }
119
-
120
- function syncScroll(dv, type) {
121
- // Change handler will do a refresh after a timeout when diff is out of date
122
- if (dv.diffOutOfDate) return false;
123
- if (!dv.lockScroll) return true;
124
- var editor, other, now = +new Date;
125
- if (type == DIFF_INSERT) { editor = dv.edit; other = dv.orig; }
126
- else { editor = dv.orig; other = dv.edit; }
127
- // Don't take action if the position of this editor was recently set
128
- // (to prevent feedback loops)
129
- if (editor.state.scrollSetBy == dv && (editor.state.scrollSetAt || 0) + 50 > now) return false;
130
-
131
- var sInfo = editor.getScrollInfo();
132
- if (dv.mv.options.connect == "align") {
133
- targetPos = sInfo.top;
134
- } else {
135
- var halfScreen = .5 * sInfo.clientHeight, midY = sInfo.top + halfScreen;
136
- var mid = editor.lineAtHeight(midY, "local");
137
- var around = chunkBoundariesAround(dv.diff, mid, type == DIFF_INSERT);
138
- var off = getOffsets(editor, type == DIFF_INSERT ? around.edit : around.orig);
139
- var offOther = getOffsets(other, type == DIFF_INSERT ? around.orig : around.edit);
140
- var ratio = (midY - off.top) / (off.bot - off.top);
141
- var targetPos = (offOther.top - halfScreen) + ratio * (offOther.bot - offOther.top);
142
-
143
- var botDist, mix;
144
- // Some careful tweaking to make sure no space is left out of view
145
- // when scrolling to top or bottom.
146
- if (targetPos > sInfo.top && (mix = sInfo.top / halfScreen) < 1) {
147
- targetPos = targetPos * mix + sInfo.top * (1 - mix);
148
- } else if ((botDist = sInfo.height - sInfo.clientHeight - sInfo.top) < halfScreen) {
149
- var otherInfo = other.getScrollInfo();
150
- var botDistOther = otherInfo.height - otherInfo.clientHeight - targetPos;
151
- if (botDistOther > botDist && (mix = botDist / halfScreen) < 1)
152
- targetPos = targetPos * mix + (otherInfo.height - otherInfo.clientHeight - botDist) * (1 - mix);
153
- }
154
- }
155
-
156
- other.scrollTo(sInfo.left, targetPos);
157
- other.state.scrollSetAt = now;
158
- other.state.scrollSetBy = dv;
159
- return true;
160
- }
161
-
162
- function getOffsets(editor, around) {
163
- var bot = around.after;
164
- if (bot == null) bot = editor.lastLine() + 1;
165
- return {top: editor.heightAtLine(around.before || 0, "local"),
166
- bot: editor.heightAtLine(bot, "local")};
167
- }
168
-
169
- function setScrollLock(dv, val, action) {
170
- dv.lockScroll = val;
171
- if (val && action != false) syncScroll(dv, DIFF_INSERT) && makeConnections(dv);
172
- dv.lockButton.innerHTML = val ? "\u21db\u21da" : "\u21db&nbsp;&nbsp;\u21da";
173
- }
174
-
175
- // Updating the marks for editor content
176
-
177
- function clearMarks(editor, arr, classes) {
178
- for (var i = 0; i < arr.length; ++i) {
179
- var mark = arr[i];
180
- if (mark instanceof CodeMirror.TextMarker) {
181
- mark.clear();
182
- } else if (mark.parent) {
183
- editor.removeLineClass(mark, "background", classes.chunk);
184
- editor.removeLineClass(mark, "background", classes.start);
185
- editor.removeLineClass(mark, "background", classes.end);
186
- }
187
- }
188
- arr.length = 0;
189
- }
190
-
191
- // FIXME maybe add a margin around viewport to prevent too many updates
192
- function updateMarks(editor, diff, state, type, classes) {
193
- var vp = editor.getViewport();
194
- editor.operation(function() {
195
- if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {
196
- clearMarks(editor, state.marked, classes);
197
- markChanges(editor, diff, type, state.marked, vp.from, vp.to, classes);
198
- state.from = vp.from; state.to = vp.to;
199
- } else {
200
- if (vp.from < state.from) {
201
- markChanges(editor, diff, type, state.marked, vp.from, state.from, classes);
202
- state.from = vp.from;
203
- }
204
- if (vp.to > state.to) {
205
- markChanges(editor, diff, type, state.marked, state.to, vp.to, classes);
206
- state.to = vp.to;
207
- }
208
- }
209
- });
210
- }
211
-
212
- function markChanges(editor, diff, type, marks, from, to, classes) {
213
- var pos = Pos(0, 0);
214
- var top = Pos(from, 0), bot = editor.clipPos(Pos(to - 1));
215
- var cls = type == DIFF_DELETE ? classes.del : classes.insert;
216
- function markChunk(start, end) {
217
- var bfrom = Math.max(from, start), bto = Math.min(to, end);
218
- for (var i = bfrom; i < bto; ++i) {
219
- var line = editor.addLineClass(i, "background", classes.chunk);
220
- if (i == start) editor.addLineClass(line, "background", classes.start);
221
- if (i == end - 1) editor.addLineClass(line, "background", classes.end);
222
- marks.push(line);
223
- }
224
- // When the chunk is empty, make sure a horizontal line shows up
225
- if (start == end && bfrom == end && bto == end) {
226
- if (bfrom)
227
- marks.push(editor.addLineClass(bfrom - 1, "background", classes.end));
228
- else
229
- marks.push(editor.addLineClass(bfrom, "background", classes.start));
230
- }
231
- }
232
-
233
- var chunkStart = 0;
234
- for (var i = 0; i < diff.length; ++i) {
235
- var part = diff[i], tp = part[0], str = part[1];
236
- if (tp == DIFF_EQUAL) {
237
- var cleanFrom = pos.line + (startOfLineClean(diff, i) ? 0 : 1);
238
- moveOver(pos, str);
239
- var cleanTo = pos.line + (endOfLineClean(diff, i) ? 1 : 0);
240
- if (cleanTo > cleanFrom) {
241
- if (i) markChunk(chunkStart, cleanFrom);
242
- chunkStart = cleanTo;
243
- }
244
- } else {
245
- if (tp == type) {
246
- var end = moveOver(pos, str, true);
247
- var a = posMax(top, pos), b = posMin(bot, end);
248
- if (!posEq(a, b))
249
- marks.push(editor.markText(a, b, {className: cls}));
250
- pos = end;
251
- }
252
- }
253
- }
254
- if (chunkStart <= pos.line) markChunk(chunkStart, pos.line + 1);
255
- }
256
-
257
- // Updating the gap between editor and original
258
-
259
- function makeConnections(dv) {
260
- if (!dv.showDifferences) return;
261
-
262
- var align = dv.mv.options.connect == "align";
263
- if (align) {
264
- if (!dv.orig.curOp) return dv.orig.operation(function() {
265
- makeConnections(dv);
266
- });
267
- for (var i = 0; i < dv.aligners.length; i++)
268
- dv.aligners[i].clear();
269
- dv.aligners.length = 0;
270
- var extraSpaceAbove = {edit: 0, orig: 0};
271
- }
272
-
273
- if (dv.svg) {
274
- clear(dv.svg);
275
- var w = dv.gap.offsetWidth;
276
- attrs(dv.svg, "width", w, "height", dv.gap.offsetHeight);
277
- }
278
- if (dv.copyButtons) clear(dv.copyButtons);
279
-
280
- var vpEdit = dv.edit.getViewport(), vpOrig = dv.orig.getViewport();
281
- var sTopEdit = dv.edit.getScrollInfo().top, sTopOrig = dv.orig.getScrollInfo().top;
282
- iterateChunks(dv.diff, function(topOrig, botOrig, topEdit, botEdit) {
283
- if (topEdit <= vpEdit.to && botEdit >= vpEdit.from &&
284
- topOrig <= vpOrig.to && botOrig >= vpOrig.from)
285
- drawConnectorsForChunk(dv, topOrig, botOrig, topEdit, botEdit, sTopOrig, sTopEdit, w);
286
- if (align && (topEdit <= vpEdit.to || topOrig <= vpOrig.to)) {
287
- var above = (botEdit < vpEdit.from && botOrig < vpOrig.from);
288
- alignChunks(dv, topOrig, botOrig, topEdit, botEdit, above && extraSpaceAbove);
289
- }
290
- });
291
- if (align) {
292
- if (extraSpaceAbove.edit)
293
- dv.aligners.push(padBelow(dv.edit, 0, extraSpaceAbove.edit));
294
- if (extraSpaceAbove.orig)
295
- dv.aligners.push(padBelow(dv.orig, 0, extraSpaceAbove.orig));
296
- }
297
- }
298
-
299
- function drawConnectorsForChunk(dv, topOrig, botOrig, topEdit, botEdit, sTopOrig, sTopEdit, w) {
300
- var flip = dv.type == "left";
301
- var top = dv.orig.heightAtLine(topOrig, "local") - sTopOrig;
302
- if (dv.svg) {
303
- var topLpx = top;
304
- var topRpx = dv.edit.heightAtLine(topEdit, "local") - sTopEdit;
305
- if (flip) { var tmp = topLpx; topLpx = topRpx; topRpx = tmp; }
306
- var botLpx = dv.orig.heightAtLine(botOrig, "local") - sTopOrig;
307
- var botRpx = dv.edit.heightAtLine(botEdit, "local") - sTopEdit;
308
- if (flip) { var tmp = botLpx; botLpx = botRpx; botRpx = tmp; }
309
- var curveTop = " C " + w/2 + " " + topRpx + " " + w/2 + " " + topLpx + " " + (w + 2) + " " + topLpx;
310
- var curveBot = " C " + w/2 + " " + botLpx + " " + w/2 + " " + botRpx + " -1 " + botRpx;
311
- attrs(dv.svg.appendChild(document.createElementNS(svgNS, "path")),
312
- "d", "M -1 " + topRpx + curveTop + " L " + (w + 2) + " " + botLpx + curveBot + " z",
313
- "class", dv.classes.connect);
314
- }
315
- if (dv.copyButtons) {
316
- var copy = dv.copyButtons.appendChild(elt("div", dv.type == "left" ? "\u21dd" : "\u21dc",
317
- "CodeMirror-merge-copy"));
318
- var editOriginals = dv.mv.options.allowEditingOriginals;
319
- copy.title = editOriginals ? "Push to left" : "Revert chunk";
320
- copy.chunk = {topEdit: topEdit, botEdit: botEdit, topOrig: topOrig, botOrig: botOrig};
321
- copy.style.top = top + "px";
322
-
323
- if (editOriginals) {
324
- var topReverse = dv.orig.heightAtLine(topEdit, "local") - sTopEdit;
325
- var copyReverse = dv.copyButtons.appendChild(elt("div", dv.type == "right" ? "\u21dd" : "\u21dc",
326
- "CodeMirror-merge-copy-reverse"));
327
- copyReverse.title = "Push to right";
328
- copyReverse.chunk = {topEdit: topOrig, botEdit: botOrig, topOrig: topEdit, botOrig: botEdit};
329
- copyReverse.style.top = topReverse + "px";
330
- dv.type == "right" ? copyReverse.style.left = "2px" : copyReverse.style.right = "2px";
331
- }
332
- }
333
- }
334
-
335
- function alignChunks(dv, topOrig, botOrig, topEdit, botEdit, aboveViewport) {
336
- var topOrigPx = dv.orig.heightAtLine(topOrig, "local");
337
- var botOrigPx = dv.orig.heightAtLine(botOrig, "local");
338
- var topEditPx = dv.edit.heightAtLine(topEdit, "local");
339
- var botEditPx = dv.edit.heightAtLine(botEdit, "local");
340
- var origH = botOrigPx -topOrigPx, editH = botEditPx - topEditPx;
341
- var diff = editH - origH;
342
- if (diff > 1) {
343
- if (aboveViewport) aboveViewport.orig += diff;
344
- else dv.aligners.push(padBelow(dv.orig, botOrig - 1, diff));
345
- } else if (diff < -1) {
346
- if (aboveViewport) aboveViewport.edit -= diff;
347
- else dv.aligners.push(padBelow(dv.edit, botEdit - 1, -diff));
348
- }
349
- return 0;
350
- }
351
-
352
- function padBelow(cm, line, size) {
353
- var elt = document.createElement("div");
354
- elt.style.height = size + "px"; elt.style.minWidth = "1px";
355
- return cm.addLineWidget(line, elt, {height: size});
356
- }
357
-
358
- function copyChunk(dv, to, from, chunk) {
359
- if (dv.diffOutOfDate) return;
360
- to.replaceRange(from.getRange(Pos(chunk.topOrig, 0), Pos(chunk.botOrig, 0)),
361
- Pos(chunk.topEdit, 0), Pos(chunk.botEdit, 0));
362
- }
363
-
364
- // Merge view, containing 0, 1, or 2 diff views.
365
-
366
- var MergeView = CodeMirror.MergeView = function(node, options) {
367
- if (!(this instanceof MergeView)) return new MergeView(node, options);
368
-
369
- this.options = options;
370
- var origLeft = options.origLeft, origRight = options.origRight == null ? options.orig : options.origRight;
371
- if (origLeft && origRight) {
372
- if (options.connect == "align")
373
- throw new Error("connect: \"align\" is not supported for three-way merge views");
374
- if (options.collapseIdentical)
375
- throw new Error("collapseIdentical option is not supported for three-way merge views");
376
- }
377
-
378
- var hasLeft = origLeft != null, hasRight = origRight != null;
379
- var panes = 1 + (hasLeft ? 1 : 0) + (hasRight ? 1 : 0);
380
- var wrap = [], left = this.left = null, right = this.right = null;
381
-
382
- if (hasLeft) {
383
- left = this.left = new DiffView(this, "left");
384
- var leftPane = elt("div", null, "CodeMirror-merge-pane");
385
- wrap.push(leftPane);
386
- wrap.push(buildGap(left));
387
- }
388
-
389
- var editPane = elt("div", null, "CodeMirror-merge-pane");
390
- wrap.push(editPane);
391
-
392
- if (hasRight) {
393
- right = this.right = new DiffView(this, "right");
394
- wrap.push(buildGap(right));
395
- var rightPane = elt("div", null, "CodeMirror-merge-pane");
396
- wrap.push(rightPane);
397
- }
398
-
399
- (hasRight ? rightPane : editPane).className += " CodeMirror-merge-pane-rightmost";
400
-
401
- wrap.push(elt("div", null, null, "height: 0; clear: both;"));
402
-
403
- var wrapElt = this.wrap = node.appendChild(elt("div", wrap, "CodeMirror-merge CodeMirror-merge-" + panes + "pane"));
404
- this.edit = CodeMirror(editPane, copyObj(options));
405
-
406
- if (left) left.init(leftPane, origLeft, options);
407
- if (right) right.init(rightPane, origRight, options);
408
-
409
- if (options.collapseIdentical)
410
- collapseIdenticalStretches(left || right, options.collapseIdentical);
411
-
412
- var onResize = function() {
413
- if (left) makeConnections(left);
414
- if (right) makeConnections(right);
415
- };
416
- CodeMirror.on(window, "resize", onResize);
417
- var resizeInterval = setInterval(function() {
418
- for (var p = wrapElt.parentNode; p && p != document.body; p = p.parentNode) {}
419
- if (!p) { clearInterval(resizeInterval); CodeMirror.off(window, "resize", onResize); }
420
- }, 5000);
421
- };
422
-
423
- function buildGap(dv) {
424
- var lock = dv.lockButton = elt("div", null, "CodeMirror-merge-scrolllock");
425
- lock.title = "Toggle locked scrolling";
426
- var lockWrap = elt("div", [lock], "CodeMirror-merge-scrolllock-wrap");
427
- CodeMirror.on(lock, "click", function() { setScrollLock(dv, !dv.lockScroll); });
428
- var gapElts = [lockWrap];
429
- if (dv.mv.options.revertButtons !== false) {
430
- dv.copyButtons = elt("div", null, "CodeMirror-merge-copybuttons-" + dv.type);
431
- CodeMirror.on(dv.copyButtons, "click", function(e) {
432
- var node = e.target || e.srcElement;
433
- if (!node.chunk) return;
434
- if (node.className == "CodeMirror-merge-copy-reverse") {
435
- copyChunk(dv, dv.orig, dv.edit, node.chunk);
436
- return;
437
- }
438
- copyChunk(dv, dv.edit, dv.orig, node.chunk);
439
- });
440
- gapElts.unshift(dv.copyButtons);
441
- }
442
- if (dv.mv.options.connect != "align") {
443
- var svg = document.createElementNS && document.createElementNS(svgNS, "svg");
444
- if (svg && !svg.createSVGRect) svg = null;
445
- dv.svg = svg;
446
- if (svg) gapElts.push(svg);
447
- }
448
-
449
- return dv.gap = elt("div", gapElts, "CodeMirror-merge-gap");
450
- }
451
-
452
- MergeView.prototype = {
453
- constuctor: MergeView,
454
- editor: function() { return this.edit; },
455
- rightOriginal: function() { return this.right && this.right.orig; },
456
- leftOriginal: function() { return this.left && this.left.orig; },
457
- setShowDifferences: function(val) {
458
- if (this.right) this.right.setShowDifferences(val);
459
- if (this.left) this.left.setShowDifferences(val);
460
- },
461
- rightChunks: function() {
462
- return this.right && getChunks(this.right);
463
- },
464
- leftChunks: function() {
465
- return this.left && getChunks(this.left);
466
- }
467
- };
468
-
469
- function asString(obj) {
470
- if (typeof obj == "string") return obj;
471
- else return obj.getValue();
472
- }
473
-
474
- // Operations on diffs
475
-
476
- var dmp = new diff_match_patch();
477
- function getDiff(a, b) {
478
- var diff = dmp.diff_main(a, b);
479
- dmp.diff_cleanupSemantic(diff);
480
- // The library sometimes leaves in empty parts, which confuse the algorithm
481
- for (var i = 0; i < diff.length; ++i) {
482
- var part = diff[i];
483
- if (!part[1]) {
484
- diff.splice(i--, 1);
485
- } else if (i && diff[i - 1][0] == part[0]) {
486
- diff.splice(i--, 1);
487
- diff[i][1] += part[1];
488
- }
489
- }
490
- return diff;
491
- }
492
-
493
- function iterateChunks(diff, f) {
494
- var startEdit = 0, startOrig = 0;
495
- var edit = Pos(0, 0), orig = Pos(0, 0);
496
- for (var i = 0; i < diff.length; ++i) {
497
- var part = diff[i], tp = part[0];
498
- if (tp == DIFF_EQUAL) {
499
- var startOff = startOfLineClean(diff, i) ? 0 : 1;
500
- var cleanFromEdit = edit.line + startOff, cleanFromOrig = orig.line + startOff;
501
- moveOver(edit, part[1], null, orig);
502
- var endOff = endOfLineClean(diff, i) ? 1 : 0;
503
- var cleanToEdit = edit.line + endOff, cleanToOrig = orig.line + endOff;
504
- if (cleanToEdit > cleanFromEdit) {
505
- if (i) f(startOrig, cleanFromOrig, startEdit, cleanFromEdit);
506
- startEdit = cleanToEdit; startOrig = cleanToOrig;
507
- }
508
- } else {
509
- moveOver(tp == DIFF_INSERT ? edit : orig, part[1]);
510
- }
511
- }
512
- if (startEdit <= edit.line || startOrig <= orig.line)
513
- f(startOrig, orig.line + 1, startEdit, edit.line + 1);
514
- }
515
-
516
- function getChunks(dv) {
517
- ensureDiff(dv);
518
- var collect = [];
519
- iterateChunks(dv.diff, function(topOrig, botOrig, topEdit, botEdit) {
520
- collect.push({origFrom: topOrig, origTo: botOrig,
521
- editFrom: topEdit, editTo: botEdit});
522
- });
523
- return collect;
524
- }
525
-
526
- function endOfLineClean(diff, i) {
527
- if (i == diff.length - 1) return true;
528
- var next = diff[i + 1][1];
529
- if (next.length == 1 || next.charCodeAt(0) != 10) return false;
530
- if (i == diff.length - 2) return true;
531
- next = diff[i + 2][1];
532
- return next.length > 1 && next.charCodeAt(0) == 10;
533
- }
534
-
535
- function startOfLineClean(diff, i) {
536
- if (i == 0) return true;
537
- var last = diff[i - 1][1];
538
- if (last.charCodeAt(last.length - 1) != 10) return false;
539
- if (i == 1) return true;
540
- last = diff[i - 2][1];
541
- return last.charCodeAt(last.length - 1) == 10;
542
- }
543
-
544
- function chunkBoundariesAround(diff, n, nInEdit) {
545
- var beforeE, afterE, beforeO, afterO;
546
- iterateChunks(diff, function(fromOrig, toOrig, fromEdit, toEdit) {
547
- var fromLocal = nInEdit ? fromEdit : fromOrig;
548
- var toLocal = nInEdit ? toEdit : toOrig;
549
- if (afterE == null) {
550
- if (fromLocal > n) { afterE = fromEdit; afterO = fromOrig; }
551
- else if (toLocal > n) { afterE = toEdit; afterO = toOrig; }
552
- }
553
- if (toLocal <= n) { beforeE = toEdit; beforeO = toOrig; }
554
- else if (fromLocal <= n) { beforeE = fromEdit; beforeO = fromOrig; }
555
- });
556
- return {edit: {before: beforeE, after: afterE}, orig: {before: beforeO, after: afterO}};
557
- }
558
-
559
- function collapseSingle(cm, from, to) {
560
- cm.addLineClass(from, "wrap", "CodeMirror-merge-collapsed-line");
561
- var widget = document.createElement("span");
562
- widget.className = "CodeMirror-merge-collapsed-widget";
563
- widget.title = "Identical text collapsed. Click to expand.";
564
- var mark = cm.markText(Pos(from, 0), Pos(to - 1), {
565
- inclusiveLeft: true,
566
- inclusiveRight: true,
567
- replacedWith: widget,
568
- clearOnEnter: true
569
- });
570
- function clear() {
571
- mark.clear();
572
- cm.removeLineClass(from, "wrap", "CodeMirror-merge-collapsed-line");
573
- }
574
- widget.addEventListener("click", clear);
575
- return {mark: mark, clear: clear};
576
- }
577
-
578
- function collapseStretch(dv, origStart, editStart, size) {
579
- var mOrig = collapseSingle(dv.orig, origStart, origStart + size);
580
- var mEdit = collapseSingle(dv.edit, editStart, editStart + size);
581
- mOrig.mark.on("clear", function() { mEdit.clear(); });
582
- mEdit.mark.on("clear", function() { mOrig.clear(); });
583
- }
584
-
585
- function collapseIdenticalStretches(dv, margin) {
586
- if (typeof margin != "number") margin = 2;
587
- var lastOrig = dv.orig.firstLine(), lastEdit = dv.edit.firstLine();
588
- iterateChunks(dv.diff, function(topOrig, botOrig, _topEdit, botEdit) {
589
- var identicalSize = topOrig - margin - lastOrig;
590
- if (identicalSize > margin)
591
- collapseStretch(dv, lastOrig, lastEdit, identicalSize);
592
- lastOrig = botOrig + margin; lastEdit = botEdit + margin;
593
- });
594
- var bottomSize = dv.orig.lastLine() + 1 - lastOrig;
595
- if (bottomSize > margin)
596
- collapseStretch(dv, lastOrig, lastEdit, bottomSize);
597
- }
598
-
599
- // General utilities
600
-
601
- function elt(tag, content, className, style) {
602
- var e = document.createElement(tag);
603
- if (className) e.className = className;
604
- if (style) e.style.cssText = style;
605
- if (typeof content == "string") e.appendChild(document.createTextNode(content));
606
- else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);
607
- return e;
608
- }
609
-
610
- function clear(node) {
611
- for (var count = node.childNodes.length; count > 0; --count)
612
- node.removeChild(node.firstChild);
613
- }
614
-
615
- function attrs(elt) {
616
- for (var i = 1; i < arguments.length; i += 2)
617
- elt.setAttribute(arguments[i], arguments[i+1]);
618
- }
619
-
620
- function copyObj(obj, target) {
621
- if (!target) target = {};
622
- for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop];
623
- return target;
624
- }
625
-
626
- function moveOver(pos, str, copy, other) {
627
- var out = copy ? Pos(pos.line, pos.ch) : pos, at = 0;
628
- for (;;) {
629
- var nl = str.indexOf("\n", at);
630
- if (nl == -1) break;
631
- ++out.line;
632
- if (other) ++other.line;
633
- at = nl + 1;
634
- }
635
- out.ch = (at ? 0 : out.ch) + (str.length - at);
636
- if (other) other.ch = (at ? 0 : other.ch) + (str.length - at);
637
- return out;
638
- }
639
-
640
- function posMin(a, b) { return (a.line - b.line || a.ch - b.ch) < 0 ? a : b; }
641
- function posMax(a, b) { return (a.line - b.line || a.ch - b.ch) > 0 ? a : b; }
642
- function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }
643
- });