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,56 +0,0 @@
1
- var _ = require('../../util')
2
-
3
- var handlers = {
4
- _default: require('./default'),
5
- radio: require('./radio'),
6
- select: require('./select'),
7
- checkbox: require('./checkbox')
8
- }
9
-
10
- module.exports = {
11
-
12
- priority: 800,
13
- twoWay: true,
14
- handlers: handlers,
15
-
16
- /**
17
- * Possible elements:
18
- * <select>
19
- * <textarea>
20
- * <input type="*">
21
- * - text
22
- * - checkbox
23
- * - radio
24
- * - number
25
- * - TODO: more types may be supplied as a plugin
26
- */
27
-
28
- bind: function () {
29
- // friendly warning...
30
- var filters = this.filters
31
- if (filters && filters.read && !filters.write) {
32
- _.warn(
33
- 'It seems you are using a read-only filter with ' +
34
- 'v-model. You might want to use a two-way filter ' +
35
- 'to ensure correct behavior.'
36
- )
37
- }
38
- var el = this.el
39
- var tag = el.tagName
40
- var handler
41
- if (tag === 'INPUT') {
42
- handler = handlers[el.type] || handlers._default
43
- } else if (tag === 'SELECT') {
44
- handler = handlers.select
45
- } else if (tag === 'TEXTAREA') {
46
- handler = handlers._default
47
- } else {
48
- _.warn("v-model doesn't support element type: " + tag)
49
- return
50
- }
51
- handler.bind.call(this)
52
- this.update = handler.update
53
- this.unbind = handler.unbind
54
- }
55
-
56
- }
@@ -1,26 +0,0 @@
1
- var _ = require('../../util')
2
-
3
- module.exports = {
4
-
5
- bind: function () {
6
- var self = this
7
- var el = this.el
8
- this.listener = function () {
9
- self.set(el.value, true)
10
- }
11
- _.on(el, 'change', this.listener)
12
- if (el.checked) {
13
- this._initValue = el.value
14
- }
15
- },
16
-
17
- update: function (value) {
18
- /* jshint eqeqeq: false */
19
- this.el.checked = value == this.el.value
20
- },
21
-
22
- unbind: function () {
23
- _.off(this.el, 'change', this.listener)
24
- }
25
-
26
- }
@@ -1,166 +0,0 @@
1
- var _ = require('../../util')
2
- var Watcher = require('../../watcher')
3
-
4
- module.exports = {
5
-
6
- bind: function () {
7
- var self = this
8
- var el = this.el
9
- // check options param
10
- var optionsParam = this._checkParam('options')
11
- if (optionsParam) {
12
- initOptions.call(this, optionsParam)
13
- }
14
- this.multiple = el.hasAttribute('multiple')
15
- this.listener = function () {
16
- var value = self.multiple
17
- ? getMultiValue(el)
18
- : el.value
19
- self.set(value, true)
20
- }
21
- _.on(el, 'change', this.listener)
22
- checkInitialValue.call(this)
23
- },
24
-
25
- update: function (value) {
26
- /* jshint eqeqeq: false */
27
- var el = this.el
28
- el.selectedIndex = -1
29
- var multi = this.multiple && _.isArray(value)
30
- var options = el.options
31
- var i = options.length
32
- var option
33
- while (i--) {
34
- option = options[i]
35
- option.selected = multi
36
- ? indexOf(value, option.value) > -1
37
- : value == option.value
38
- }
39
- },
40
-
41
- unbind: function () {
42
- _.off(this.el, 'change', this.listener)
43
- if (this.optionWatcher) {
44
- this.optionWatcher.teardown()
45
- }
46
- }
47
-
48
- }
49
-
50
- /**
51
- * Initialize the option list from the param.
52
- *
53
- * @param {String} expression
54
- */
55
-
56
- function initOptions (expression) {
57
- var self = this
58
- function optionUpdateWatcher (value) {
59
- if (_.isArray(value)) {
60
- self.el.innerHTML = ''
61
- buildOptions(self.el, value)
62
- if (self._watcher) {
63
- self.update(self._watcher.value)
64
- }
65
- } else {
66
- _.warn('Invalid options value for v-model: ' + value)
67
- }
68
- }
69
- this.optionWatcher = new Watcher(
70
- this.vm,
71
- expression,
72
- optionUpdateWatcher
73
- )
74
- // update with initial value
75
- optionUpdateWatcher(this.optionWatcher.value)
76
- }
77
-
78
- /**
79
- * Build up option elements. IE9 doesn't create options
80
- * when setting innerHTML on <select> elements, so we have
81
- * to use DOM API here.
82
- *
83
- * @param {Element} parent - a <select> or an <optgroup>
84
- * @param {Array} options
85
- */
86
-
87
- function buildOptions (parent, options) {
88
- var op, el
89
- for (var i = 0, l = options.length; i < l; i++) {
90
- op = options[i]
91
- if (!op.options) {
92
- el = document.createElement('option')
93
- if (typeof op === 'string') {
94
- el.text = el.value = op
95
- } else {
96
- el.text = op.text
97
- el.value = op.value
98
- }
99
- } else {
100
- el = document.createElement('optgroup')
101
- el.label = op.label
102
- buildOptions(el, op.options)
103
- }
104
- parent.appendChild(el)
105
- }
106
- }
107
-
108
- /**
109
- * Check the initial value for selected options.
110
- */
111
-
112
- function checkInitialValue () {
113
- var initValue
114
- var options = this.el.options
115
- for (var i = 0, l = options.length; i < l; i++) {
116
- if (options[i].hasAttribute('selected')) {
117
- if (this.multiple) {
118
- (initValue || (initValue = []))
119
- .push(options[i].value)
120
- } else {
121
- initValue = options[i].value
122
- }
123
- }
124
- }
125
- if (initValue) {
126
- this._initValue = initValue
127
- }
128
- }
129
-
130
- /**
131
- * Helper to extract a value array for select[multiple]
132
- *
133
- * @param {SelectElement} el
134
- * @return {Array}
135
- */
136
-
137
- function getMultiValue (el) {
138
- return Array.prototype.filter
139
- .call(el.options, filterSelected)
140
- .map(getOptionValue)
141
- }
142
-
143
- function filterSelected (op) {
144
- return op.selected
145
- }
146
-
147
- function getOptionValue (op) {
148
- return op.value || op.text
149
- }
150
-
151
- /**
152
- * Native Array.indexOf uses strict equal, but in this
153
- * case we need to match string/numbers with soft equal.
154
- *
155
- * @param {Array} arr
156
- * @param {*} val
157
- */
158
-
159
- function indexOf (arr, val) {
160
- /* jshint eqeqeq: false */
161
- var i = arr.length
162
- while (i--) {
163
- if (arr[i] == val) return i
164
- }
165
- return -1
166
- }
@@ -1,59 +0,0 @@
1
- var _ = require('../util')
2
-
3
- module.exports = {
4
-
5
- acceptStatement: true,
6
- priority: 700,
7
-
8
- bind: function () {
9
- // deal with iframes
10
- if (
11
- this.el.tagName === 'IFRAME' &&
12
- this.arg !== 'load'
13
- ) {
14
- var self = this
15
- this.iframeBind = function () {
16
- _.on(self.el.contentWindow, self.arg, self.handler)
17
- }
18
- _.on(this.el, 'load', this.iframeBind)
19
- }
20
- },
21
-
22
- update: function (handler) {
23
- if (typeof handler !== 'function') {
24
- _.warn(
25
- 'Directive "v-on:' + this.expression + '" ' +
26
- 'expects a function value.'
27
- )
28
- return
29
- }
30
- this.reset()
31
- var vm = this.vm
32
- this.handler = function (e) {
33
- e.targetVM = vm
34
- vm.$event = e
35
- var res = handler(e)
36
- vm.$event = null
37
- return res
38
- }
39
- if (this.iframeBind) {
40
- this.iframeBind()
41
- } else {
42
- _.on(this.el, this.arg, this.handler)
43
- }
44
- },
45
-
46
- reset: function () {
47
- var el = this.iframeBind
48
- ? this.el.contentWindow
49
- : this.el
50
- if (this.handler) {
51
- _.off(el, this.arg, this.handler)
52
- }
53
- },
54
-
55
- unbind: function () {
56
- this.reset()
57
- _.off(this.el, 'load', this.iframeBind)
58
- }
59
- }
@@ -1,44 +0,0 @@
1
- var _ = require('../util')
2
- var templateParser = require('../parsers/template')
3
- var vIf = require('./if')
4
-
5
- module.exports = {
6
-
7
- isLiteral: true,
8
-
9
- // same logic reuse from v-if
10
- compile: vIf.compile,
11
- teardown: vIf.teardown,
12
-
13
- bind: function () {
14
- var el = this.el
15
- this.start = document.createComment('v-partial-start')
16
- this.end = document.createComment('v-partial-end')
17
- if (el.nodeType !== 8) {
18
- el.innerHTML = ''
19
- }
20
- if (el.tagName === 'TEMPLATE' || el.nodeType === 8) {
21
- _.replace(el, this.end)
22
- } else {
23
- el.appendChild(this.end)
24
- }
25
- _.before(this.start, this.end)
26
- if (!this._isDynamicLiteral) {
27
- this.insert(this.expression)
28
- }
29
- },
30
-
31
- update: function (id) {
32
- this.teardown()
33
- this.insert(id)
34
- },
35
-
36
- insert: function (id) {
37
- var partial = this.vm.$options.partials[id]
38
- _.assertAsset(partial, 'partial', id)
39
- if (partial) {
40
- this.compile(templateParser.parse(partial))
41
- }
42
- }
43
-
44
- }
@@ -1,24 +0,0 @@
1
- var _ = require('../util')
2
-
3
- module.exports = {
4
-
5
- isLiteral: true,
6
-
7
- bind: function () {
8
- if (this.el !== this.vm.$el) {
9
- _.warn(
10
- 'v-ref should only be used on instance root nodes.'
11
- )
12
- return
13
- }
14
- this.owner = this.vm.$parent
15
- this.owner.$[this.expression] = this.vm
16
- },
17
-
18
- unbind: function () {
19
- if (this.owner.$[this.expression] === this.vm) {
20
- delete this.owner.$[this.expression]
21
- }
22
- }
23
-
24
- }
@@ -1,503 +0,0 @@
1
- var _ = require('../util')
2
- var isObject = _.isObject
3
- var textParser = require('../parsers/text')
4
- var expParser = require('../parsers/expression')
5
- var templateParser = require('../parsers/template')
6
- var compile = require('../compiler/compile')
7
- var transclude = require('../compiler/transclude')
8
- var mergeOptions = require('../util/merge-option')
9
- var uid = 0
10
-
11
- module.exports = {
12
-
13
- /**
14
- * Setup.
15
- */
16
-
17
- bind: function () {
18
- // uid as a cache identifier
19
- this.id = '__v_repeat_' + (++uid)
20
- // we need to insert the objToArray converter
21
- // as the first read filter, because it has to be invoked
22
- // before any user filters. (can't do it in `update`)
23
- if (!this.filters) {
24
- this.filters = {}
25
- }
26
- // add the object -> array convert filter
27
- var objectConverter = _.bind(objToArray, this)
28
- if (!this.filters.read) {
29
- this.filters.read = [objectConverter]
30
- } else {
31
- this.filters.read.unshift(objectConverter)
32
- }
33
- // setup ref node
34
- this.ref = document.createComment('v-repeat')
35
- _.replace(this.el, this.ref)
36
- // check if this is a block repeat
37
- this.template = this.el.tagName === 'TEMPLATE'
38
- ? templateParser.parse(this.el, true)
39
- : this.el
40
- // check other directives that need to be handled
41
- // at v-repeat level
42
- this.checkIf()
43
- this.checkRef()
44
- this.checkComponent()
45
- // check for trackby param
46
- this.idKey =
47
- this._checkParam('track-by') ||
48
- this._checkParam('trackby') // 0.11.0 compat
49
- // cache for primitive value instances
50
- this.cache = Object.create(null)
51
- },
52
-
53
- /**
54
- * Warn against v-if usage.
55
- */
56
-
57
- checkIf: function () {
58
- if (_.attr(this.el, 'if') !== null) {
59
- _.warn(
60
- 'Don\'t use v-if with v-repeat. ' +
61
- 'Use v-show or the "filterBy" filter instead.'
62
- )
63
- }
64
- },
65
-
66
- /**
67
- * Check if v-ref/ v-el is also present.
68
- */
69
-
70
- checkRef: function () {
71
- var childId = _.attr(this.el, 'ref')
72
- this.childId = childId
73
- ? this.vm.$interpolate(childId)
74
- : null
75
- var elId = _.attr(this.el, 'el')
76
- this.elId = elId
77
- ? this.vm.$interpolate(elId)
78
- : null
79
- },
80
-
81
- /**
82
- * Check the component constructor to use for repeated
83
- * instances. If static we resolve it now, otherwise it
84
- * needs to be resolved at build time with actual data.
85
- */
86
-
87
- checkComponent: function () {
88
- var id = _.attr(this.el, 'component')
89
- var options = this.vm.$options
90
- if (!id) {
91
- this.Ctor = _.Vue // default constructor
92
- this.inherit = true // inline repeats should inherit
93
- // important: transclude with no options, just
94
- // to ensure block start and block end
95
- this.template = transclude(this.template)
96
- this._linkFn = compile(this.template, options)
97
- } else {
98
- this._asComponent = true
99
- var tokens = textParser.parse(id)
100
- if (!tokens) { // static component
101
- var Ctor = this.Ctor = options.components[id]
102
- _.assertAsset(Ctor, 'component', id)
103
- // If there's no parent scope directives and no
104
- // content to be transcluded, we can optimize the
105
- // rendering by pre-transcluding + compiling here
106
- // and provide a link function to every instance.
107
- if (!this.el.hasChildNodes() &&
108
- !this.el.hasAttributes()) {
109
- // merge an empty object with owner vm as parent
110
- // so child vms can access parent assets.
111
- var merged = mergeOptions(Ctor.options, {}, {
112
- $parent: this.vm
113
- })
114
- this.template = transclude(this.template, merged)
115
- this._linkFn = compile(this.template, merged)
116
- }
117
- } else {
118
- // to be resolved later
119
- var ctorExp = textParser.tokensToExp(tokens)
120
- this.ctorGetter = expParser.parse(ctorExp).get
121
- }
122
- }
123
- },
124
-
125
- /**
126
- * Update.
127
- * This is called whenever the Array mutates.
128
- *
129
- * @param {Array} data
130
- */
131
-
132
- update: function (data) {
133
- if (typeof data === 'number') {
134
- data = range(data)
135
- }
136
- this.vms = this.diff(data || [], this.vms)
137
- // update v-ref
138
- if (this.childId) {
139
- this.vm.$[this.childId] = this.vms
140
- }
141
- if (this.elId) {
142
- this.vm.$$[this.elId] = this.vms.map(function (vm) {
143
- return vm.$el
144
- })
145
- }
146
- },
147
-
148
- /**
149
- * Diff, based on new data and old data, determine the
150
- * minimum amount of DOM manipulations needed to make the
151
- * DOM reflect the new data Array.
152
- *
153
- * The algorithm diffs the new data Array by storing a
154
- * hidden reference to an owner vm instance on previously
155
- * seen data. This allows us to achieve O(n) which is
156
- * better than a levenshtein distance based algorithm,
157
- * which is O(m * n).
158
- *
159
- * @param {Array} data
160
- * @param {Array} oldVms
161
- * @return {Array}
162
- */
163
-
164
- diff: function (data, oldVms) {
165
- var idKey = this.idKey
166
- var converted = this.converted
167
- var ref = this.ref
168
- var alias = this.arg
169
- var init = !oldVms
170
- var vms = new Array(data.length)
171
- var obj, raw, vm, i, l
172
- // First pass, go through the new Array and fill up
173
- // the new vms array. If a piece of data has a cached
174
- // instance for it, we reuse it. Otherwise build a new
175
- // instance.
176
- for (i = 0, l = data.length; i < l; i++) {
177
- obj = data[i]
178
- raw = converted ? obj.value : obj
179
- vm = !init && this.getVm(raw)
180
- if (vm) { // reusable instance
181
- vm._reused = true
182
- vm.$index = i // update $index
183
- if (converted) {
184
- vm.$key = obj.key // update $key
185
- }
186
- if (idKey) { // swap track by id data
187
- if (alias) {
188
- vm[alias] = raw
189
- } else {
190
- vm._setData(raw)
191
- }
192
- }
193
- } else { // new instance
194
- vm = this.build(obj, i)
195
- vm._new = true
196
- }
197
- vms[i] = vm
198
- // insert if this is first run
199
- if (init) {
200
- vm.$before(ref)
201
- }
202
- }
203
- // if this is the first run, we're done.
204
- if (init) {
205
- return vms
206
- }
207
- // Second pass, go through the old vm instances and
208
- // destroy those who are not reused (and remove them
209
- // from cache)
210
- for (i = 0, l = oldVms.length; i < l; i++) {
211
- vm = oldVms[i]
212
- if (!vm._reused) {
213
- this.uncacheVm(vm)
214
- vm.$destroy(true)
215
- }
216
- }
217
- // final pass, move/insert new instances into the
218
- // right place. We're going in reverse here because
219
- // insertBefore relies on the next sibling to be
220
- // resolved.
221
- var targetNext, currentNext
222
- i = vms.length
223
- while (i--) {
224
- vm = vms[i]
225
- // this is the vm that we should be in front of
226
- targetNext = vms[i + 1]
227
- if (!targetNext) {
228
- // This is the last item. If it's reused then
229
- // everything else will eventually be in the right
230
- // place, so no need to touch it. Otherwise, insert
231
- // it.
232
- if (!vm._reused) {
233
- vm.$before(ref)
234
- }
235
- } else {
236
- if (vm._reused) {
237
- // this is the vm we are actually in front of
238
- currentNext = findNextVm(vm, ref)
239
- // we only need to move if we are not in the right
240
- // place already.
241
- if (currentNext !== targetNext) {
242
- vm.$before(targetNext.$el, null, false)
243
- }
244
- } else {
245
- // new instance, insert to existing next
246
- vm.$before(targetNext.$el)
247
- }
248
- }
249
- vm._new = false
250
- vm._reused = false
251
- }
252
- return vms
253
- },
254
-
255
- /**
256
- * Build a new instance and cache it.
257
- *
258
- * @param {Object} data
259
- * @param {Number} index
260
- */
261
-
262
- build: function (data, index) {
263
- var original = data
264
- var meta = { $index: index }
265
- if (this.converted) {
266
- meta.$key = original.key
267
- }
268
- var raw = this.converted ? data.value : data
269
- var alias = this.arg
270
- var hasAlias = !isObject(raw) || alias
271
- // wrap the raw data with alias
272
- data = hasAlias ? {} : raw
273
- if (alias) {
274
- data[alias] = raw
275
- } else if (hasAlias) {
276
- meta.$value = raw
277
- }
278
- // resolve constructor
279
- var Ctor = this.Ctor || this.resolveCtor(data, meta)
280
- var vm = this.vm.$addChild({
281
- el: templateParser.clone(this.template),
282
- _asComponent: this._asComponent,
283
- _linkFn: this._linkFn,
284
- _meta: meta,
285
- data: data,
286
- inherit: this.inherit
287
- }, Ctor)
288
- // cache instance
289
- this.cacheVm(raw, vm)
290
- return vm
291
- },
292
-
293
- /**
294
- * Resolve a contructor to use for an instance.
295
- * The tricky part here is that there could be dynamic
296
- * components depending on instance data.
297
- *
298
- * @param {Object} data
299
- * @param {Object} meta
300
- * @return {Function}
301
- */
302
-
303
- resolveCtor: function (data, meta) {
304
- // create a temporary context object and copy data
305
- // and meta properties onto it.
306
- // use _.define to avoid accidentally overwriting scope
307
- // properties.
308
- var context = Object.create(this.vm)
309
- var key
310
- for (key in data) {
311
- _.define(context, key, data[key])
312
- }
313
- for (key in meta) {
314
- _.define(context, key, meta[key])
315
- }
316
- var id = this.ctorGetter.call(context, context)
317
- var Ctor = this.vm.$options.components[id]
318
- _.assertAsset(Ctor, 'component', id)
319
- return Ctor
320
- },
321
-
322
- /**
323
- * Unbind, teardown everything
324
- */
325
-
326
- unbind: function () {
327
- if (this.childId) {
328
- delete this.vm.$[this.childId]
329
- }
330
- if (this.vms) {
331
- var i = this.vms.length
332
- var vm
333
- while (i--) {
334
- vm = this.vms[i]
335
- this.uncacheVm(vm)
336
- vm.$destroy()
337
- }
338
- }
339
- },
340
-
341
- /**
342
- * Cache a vm instance based on its data.
343
- *
344
- * If the data is an object, we save the vm's reference on
345
- * the data object as a hidden property. Otherwise we
346
- * cache them in an object and for each primitive value
347
- * there is an array in case there are duplicates.
348
- *
349
- * @param {Object} data
350
- * @param {Vue} vm
351
- */
352
-
353
- cacheVm: function (data, vm) {
354
- var idKey = this.idKey
355
- var cache = this.cache
356
- var id
357
- if (idKey) {
358
- id = data[idKey]
359
- if (!cache[id]) {
360
- cache[id] = vm
361
- } else {
362
- _.warn('Duplicate ID in v-repeat: ' + id)
363
- }
364
- } else if (isObject(data)) {
365
- id = this.id
366
- if (data.hasOwnProperty(id)) {
367
- if (data[id] === null) {
368
- data[id] = vm
369
- } else {
370
- _.warn(
371
- 'Duplicate objects are not supported in v-repeat.'
372
- )
373
- }
374
- } else {
375
- _.define(data, this.id, vm)
376
- }
377
- } else {
378
- if (!cache[data]) {
379
- cache[data] = [vm]
380
- } else {
381
- cache[data].push(vm)
382
- }
383
- }
384
- vm._raw = data
385
- },
386
-
387
- /**
388
- * Try to get a cached instance from a piece of data.
389
- *
390
- * @param {Object} data
391
- * @return {Vue|undefined}
392
- */
393
-
394
- getVm: function (data) {
395
- if (this.idKey) {
396
- return this.cache[data[this.idKey]]
397
- } else if (isObject(data)) {
398
- return data[this.id]
399
- } else {
400
- var cached = this.cache[data]
401
- if (cached) {
402
- var i = 0
403
- var vm = cached[i]
404
- // since duplicated vm instances might be a reused
405
- // one OR a newly created one, we need to return the
406
- // first instance that is neither of these.
407
- while (vm && (vm._reused || vm._new)) {
408
- vm = cached[++i]
409
- }
410
- return vm
411
- }
412
- }
413
- },
414
-
415
- /**
416
- * Delete a cached vm instance.
417
- *
418
- * @param {Vue} vm
419
- */
420
-
421
- uncacheVm: function (vm) {
422
- var data = vm._raw
423
- if (this.idKey) {
424
- this.cache[data[this.idKey]] = null
425
- } else if (isObject(data)) {
426
- data[this.id] = null
427
- vm._raw = null
428
- } else {
429
- this.cache[data].pop()
430
- }
431
- }
432
-
433
- }
434
-
435
- /**
436
- * Helper to find the next element that is an instance
437
- * root node. This is necessary because a destroyed vm's
438
- * element could still be lingering in the DOM before its
439
- * leaving transition finishes, but its __vue__ reference
440
- * should have been removed so we can skip them.
441
- *
442
- * @param {Vue} vm
443
- * @param {CommentNode} ref
444
- * @return {Vue}
445
- */
446
-
447
- function findNextVm (vm, ref) {
448
- var el = (vm._blockEnd || vm.$el).nextSibling
449
- while (!el.__vue__ && el !== ref) {
450
- el = el.nextSibling
451
- }
452
- return el.__vue__
453
- }
454
-
455
- /**
456
- * Attempt to convert non-Array objects to array.
457
- * This is the default filter installed to every v-repeat
458
- * directive.
459
- *
460
- * It will be called with **the directive** as `this`
461
- * context so that we can mark the repeat array as converted
462
- * from an object.
463
- *
464
- * @param {*} obj
465
- * @return {Array}
466
- * @private
467
- */
468
-
469
- function objToArray (obj) {
470
- if (!_.isPlainObject(obj)) {
471
- return obj
472
- }
473
- var keys = Object.keys(obj)
474
- var i = keys.length
475
- var res = new Array(i)
476
- var key
477
- while (i--) {
478
- key = keys[i]
479
- res[i] = {
480
- key: key,
481
- value: obj[key]
482
- }
483
- }
484
- // `this` points to the repeat directive instance
485
- this.converted = true
486
- return res
487
- }
488
-
489
- /**
490
- * Create a range array from given number.
491
- *
492
- * @param {Number} n
493
- * @return {Array}
494
- */
495
-
496
- function range (n) {
497
- var i = -1
498
- var ret = new Array(n)
499
- while (++i < n) {
500
- ret[i] = i
501
- }
502
- return ret
503
- }