plate-lang 0.1.0

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 (536) hide show
  1. checksums.yaml +7 -0
  2. data/.bowerrc +3 -0
  3. data/.codeclimate.yml +7 -0
  4. data/.gitignore +25 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +4 -0
  7. data/CODE_OF_CONDUCT.md +13 -0
  8. data/Gemfile +10 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +64 -0
  11. data/Rakefile +36 -0
  12. data/bin/console +14 -0
  13. data/bin/setup +7 -0
  14. data/bower.json +10 -0
  15. data/circle.yml +4 -0
  16. data/exe/plate +6 -0
  17. data/lib/plate/cli.rb +97 -0
  18. data/lib/plate/compiler.rb +244 -0
  19. data/lib/plate/grammar.y +145 -0
  20. data/lib/plate/lexer.rb +138 -0
  21. data/lib/plate/nodes.rb +107 -0
  22. data/lib/plate/parser.rb +568 -0
  23. data/lib/plate/version.rb +3 -0
  24. data/lib/plate.rb +14 -0
  25. data/plate-lang.gemspec +30 -0
  26. data/skeleton/app/assets/css/app.css +21 -0
  27. data/skeleton/app/assets/js/app.js +15 -0
  28. data/skeleton/app/index.html +26 -0
  29. data/skeleton/app/vendor/.keep +0 -0
  30. data/skeleton/vendor/bootstrap/.bower.json +44 -0
  31. data/skeleton/vendor/bootstrap/Gruntfile.js +531 -0
  32. data/skeleton/vendor/bootstrap/LICENSE +21 -0
  33. data/skeleton/vendor/bootstrap/README.md +137 -0
  34. data/skeleton/vendor/bootstrap/bower.json +34 -0
  35. data/skeleton/vendor/bootstrap/dist/css/bootstrap-theme.css +587 -0
  36. data/skeleton/vendor/bootstrap/dist/css/bootstrap-theme.css.map +1 -0
  37. data/skeleton/vendor/bootstrap/dist/css/bootstrap-theme.min.css +5 -0
  38. data/skeleton/vendor/bootstrap/dist/css/bootstrap.css +6800 -0
  39. data/skeleton/vendor/bootstrap/dist/css/bootstrap.css.map +1 -0
  40. data/skeleton/vendor/bootstrap/dist/css/bootstrap.min.css +5 -0
  41. data/skeleton/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  42. data/skeleton/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  43. data/skeleton/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  44. data/skeleton/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  45. data/skeleton/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  46. data/skeleton/vendor/bootstrap/dist/js/bootstrap.js +2363 -0
  47. data/skeleton/vendor/bootstrap/dist/js/bootstrap.min.js +7 -0
  48. data/skeleton/vendor/bootstrap/dist/js/npm.js +13 -0
  49. data/skeleton/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  50. data/skeleton/vendor/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  51. data/skeleton/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  52. data/skeleton/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  53. data/skeleton/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  54. data/skeleton/vendor/bootstrap/grunt/.jshintrc +7 -0
  55. data/skeleton/vendor/bootstrap/grunt/bs-commonjs-generator.js +30 -0
  56. data/skeleton/vendor/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
  57. data/skeleton/vendor/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
  58. data/skeleton/vendor/bootstrap/grunt/bs-raw-files-generator.js +44 -0
  59. data/skeleton/vendor/bootstrap/grunt/configBridge.json +46 -0
  60. data/skeleton/vendor/bootstrap/grunt/sauce_browsers.yml +82 -0
  61. data/skeleton/vendor/bootstrap/js/.jscsrc +42 -0
  62. data/skeleton/vendor/bootstrap/js/.jshintrc +15 -0
  63. data/skeleton/vendor/bootstrap/js/affix.js +162 -0
  64. data/skeleton/vendor/bootstrap/js/alert.js +94 -0
  65. data/skeleton/vendor/bootstrap/js/button.js +120 -0
  66. data/skeleton/vendor/bootstrap/js/carousel.js +237 -0
  67. data/skeleton/vendor/bootstrap/js/collapse.js +211 -0
  68. data/skeleton/vendor/bootstrap/js/dropdown.js +165 -0
  69. data/skeleton/vendor/bootstrap/js/modal.js +337 -0
  70. data/skeleton/vendor/bootstrap/js/popover.js +108 -0
  71. data/skeleton/vendor/bootstrap/js/scrollspy.js +172 -0
  72. data/skeleton/vendor/bootstrap/js/tab.js +155 -0
  73. data/skeleton/vendor/bootstrap/js/tooltip.js +514 -0
  74. data/skeleton/vendor/bootstrap/js/transition.js +59 -0
  75. data/skeleton/vendor/bootstrap/less/.csscomb.json +304 -0
  76. data/skeleton/vendor/bootstrap/less/.csslintrc +19 -0
  77. data/skeleton/vendor/bootstrap/less/alerts.less +73 -0
  78. data/skeleton/vendor/bootstrap/less/badges.less +66 -0
  79. data/skeleton/vendor/bootstrap/less/bootstrap.less +56 -0
  80. data/skeleton/vendor/bootstrap/less/breadcrumbs.less +26 -0
  81. data/skeleton/vendor/bootstrap/less/button-groups.less +244 -0
  82. data/skeleton/vendor/bootstrap/less/buttons.less +166 -0
  83. data/skeleton/vendor/bootstrap/less/carousel.less +269 -0
  84. data/skeleton/vendor/bootstrap/less/close.less +34 -0
  85. data/skeleton/vendor/bootstrap/less/code.less +69 -0
  86. data/skeleton/vendor/bootstrap/less/component-animations.less +33 -0
  87. data/skeleton/vendor/bootstrap/less/dropdowns.less +216 -0
  88. data/skeleton/vendor/bootstrap/less/forms.less +607 -0
  89. data/skeleton/vendor/bootstrap/less/glyphicons.less +305 -0
  90. data/skeleton/vendor/bootstrap/less/grid.less +84 -0
  91. data/skeleton/vendor/bootstrap/less/input-groups.less +167 -0
  92. data/skeleton/vendor/bootstrap/less/jumbotron.less +52 -0
  93. data/skeleton/vendor/bootstrap/less/labels.less +64 -0
  94. data/skeleton/vendor/bootstrap/less/list-group.less +130 -0
  95. data/skeleton/vendor/bootstrap/less/media.less +66 -0
  96. data/skeleton/vendor/bootstrap/less/mixins/alerts.less +14 -0
  97. data/skeleton/vendor/bootstrap/less/mixins/background-variant.less +9 -0
  98. data/skeleton/vendor/bootstrap/less/mixins/border-radius.less +18 -0
  99. data/skeleton/vendor/bootstrap/less/mixins/buttons.less +68 -0
  100. data/skeleton/vendor/bootstrap/less/mixins/center-block.less +7 -0
  101. data/skeleton/vendor/bootstrap/less/mixins/clearfix.less +22 -0
  102. data/skeleton/vendor/bootstrap/less/mixins/forms.less +85 -0
  103. data/skeleton/vendor/bootstrap/less/mixins/gradients.less +59 -0
  104. data/skeleton/vendor/bootstrap/less/mixins/grid-framework.less +91 -0
  105. data/skeleton/vendor/bootstrap/less/mixins/grid.less +122 -0
  106. data/skeleton/vendor/bootstrap/less/mixins/hide-text.less +21 -0
  107. data/skeleton/vendor/bootstrap/less/mixins/image.less +33 -0
  108. data/skeleton/vendor/bootstrap/less/mixins/labels.less +12 -0
  109. data/skeleton/vendor/bootstrap/less/mixins/list-group.less +30 -0
  110. data/skeleton/vendor/bootstrap/less/mixins/nav-divider.less +10 -0
  111. data/skeleton/vendor/bootstrap/less/mixins/nav-vertical-align.less +9 -0
  112. data/skeleton/vendor/bootstrap/less/mixins/opacity.less +8 -0
  113. data/skeleton/vendor/bootstrap/less/mixins/pagination.less +24 -0
  114. data/skeleton/vendor/bootstrap/less/mixins/panels.less +24 -0
  115. data/skeleton/vendor/bootstrap/less/mixins/progress-bar.less +10 -0
  116. data/skeleton/vendor/bootstrap/less/mixins/reset-filter.less +8 -0
  117. data/skeleton/vendor/bootstrap/less/mixins/reset-text.less +18 -0
  118. data/skeleton/vendor/bootstrap/less/mixins/resize.less +6 -0
  119. data/skeleton/vendor/bootstrap/less/mixins/responsive-visibility.less +15 -0
  120. data/skeleton/vendor/bootstrap/less/mixins/size.less +10 -0
  121. data/skeleton/vendor/bootstrap/less/mixins/tab-focus.less +9 -0
  122. data/skeleton/vendor/bootstrap/less/mixins/table-row.less +28 -0
  123. data/skeleton/vendor/bootstrap/less/mixins/text-emphasis.less +9 -0
  124. data/skeleton/vendor/bootstrap/less/mixins/text-overflow.less +8 -0
  125. data/skeleton/vendor/bootstrap/less/mixins/vendor-prefixes.less +227 -0
  126. data/skeleton/vendor/bootstrap/less/mixins.less +40 -0
  127. data/skeleton/vendor/bootstrap/less/modals.less +150 -0
  128. data/skeleton/vendor/bootstrap/less/navbar.less +660 -0
  129. data/skeleton/vendor/bootstrap/less/navs.less +242 -0
  130. data/skeleton/vendor/bootstrap/less/normalize.less +424 -0
  131. data/skeleton/vendor/bootstrap/less/pager.less +54 -0
  132. data/skeleton/vendor/bootstrap/less/pagination.less +89 -0
  133. data/skeleton/vendor/bootstrap/less/panels.less +271 -0
  134. data/skeleton/vendor/bootstrap/less/popovers.less +131 -0
  135. data/skeleton/vendor/bootstrap/less/print.less +101 -0
  136. data/skeleton/vendor/bootstrap/less/progress-bars.less +87 -0
  137. data/skeleton/vendor/bootstrap/less/responsive-embed.less +35 -0
  138. data/skeleton/vendor/bootstrap/less/responsive-utilities.less +194 -0
  139. data/skeleton/vendor/bootstrap/less/scaffolding.less +161 -0
  140. data/skeleton/vendor/bootstrap/less/tables.less +234 -0
  141. data/skeleton/vendor/bootstrap/less/theme.less +291 -0
  142. data/skeleton/vendor/bootstrap/less/thumbnails.less +36 -0
  143. data/skeleton/vendor/bootstrap/less/tooltip.less +101 -0
  144. data/skeleton/vendor/bootstrap/less/type.less +302 -0
  145. data/skeleton/vendor/bootstrap/less/utilities.less +55 -0
  146. data/skeleton/vendor/bootstrap/less/variables.less +867 -0
  147. data/skeleton/vendor/bootstrap/less/wells.less +29 -0
  148. data/skeleton/vendor/bootstrap/package.js +25 -0
  149. data/skeleton/vendor/bootstrap/package.json +87 -0
  150. data/skeleton/vendor/bootswatch/.bower.json +52 -0
  151. data/skeleton/vendor/bootswatch/.bowerrc +5 -0
  152. data/skeleton/vendor/bootswatch/LICENSE +21 -0
  153. data/skeleton/vendor/bootswatch/README.md +59 -0
  154. data/skeleton/vendor/bootswatch/bower.json +42 -0
  155. data/skeleton/vendor/bootswatch/cerulean/_bootswatch.scss +131 -0
  156. data/skeleton/vendor/bootswatch/cerulean/_variables.scss +868 -0
  157. data/skeleton/vendor/bootswatch/cerulean/bootstrap.css +6944 -0
  158. data/skeleton/vendor/bootswatch/cerulean/bootstrap.min.css +11 -0
  159. data/skeleton/vendor/bootswatch/cerulean/bootswatch.less +131 -0
  160. data/skeleton/vendor/bootswatch/cerulean/thumbnail.png +0 -0
  161. data/skeleton/vendor/bootswatch/cerulean/variables.less +867 -0
  162. data/skeleton/vendor/bootswatch/cosmo/_bootswatch.scss +261 -0
  163. data/skeleton/vendor/bootswatch/cosmo/_variables.scss +868 -0
  164. data/skeleton/vendor/bootswatch/cosmo/bootstrap.css +6979 -0
  165. data/skeleton/vendor/bootswatch/cosmo/bootstrap.min.css +11 -0
  166. data/skeleton/vendor/bootswatch/cosmo/bootswatch.less +261 -0
  167. data/skeleton/vendor/bootswatch/cosmo/thumbnail.png +0 -0
  168. data/skeleton/vendor/bootswatch/cosmo/variables.less +867 -0
  169. data/skeleton/vendor/bootswatch/cyborg/_bootswatch.scss +234 -0
  170. data/skeleton/vendor/bootswatch/cyborg/_variables.scss +868 -0
  171. data/skeleton/vendor/bootswatch/cyborg/bootstrap.css +6963 -0
  172. data/skeleton/vendor/bootswatch/cyborg/bootstrap.min.css +11 -0
  173. data/skeleton/vendor/bootswatch/cyborg/bootswatch.less +234 -0
  174. data/skeleton/vendor/bootswatch/cyborg/thumbnail.png +0 -0
  175. data/skeleton/vendor/bootswatch/cyborg/variables.less +867 -0
  176. data/skeleton/vendor/bootswatch/darkly/_bootswatch.scss +346 -0
  177. data/skeleton/vendor/bootswatch/darkly/_variables.scss +868 -0
  178. data/skeleton/vendor/bootswatch/darkly/bootstrap.css +7086 -0
  179. data/skeleton/vendor/bootswatch/darkly/bootstrap.min.css +11 -0
  180. data/skeleton/vendor/bootswatch/darkly/bootswatch.less +346 -0
  181. data/skeleton/vendor/bootswatch/darkly/thumbnail.png +0 -0
  182. data/skeleton/vendor/bootswatch/darkly/variables.less +867 -0
  183. data/skeleton/vendor/bootswatch/flatly/_bootswatch.scss +329 -0
  184. data/skeleton/vendor/bootswatch/flatly/_variables.scss +868 -0
  185. data/skeleton/vendor/bootswatch/flatly/bootstrap.css +7065 -0
  186. data/skeleton/vendor/bootswatch/flatly/bootstrap.min.css +11 -0
  187. data/skeleton/vendor/bootswatch/flatly/bootswatch.less +329 -0
  188. data/skeleton/vendor/bootswatch/flatly/thumbnail.png +0 -0
  189. data/skeleton/vendor/bootswatch/flatly/variables.less +867 -0
  190. data/skeleton/vendor/bootswatch/fonts/glyphicons-halflings-regular.eot +0 -0
  191. data/skeleton/vendor/bootswatch/fonts/glyphicons-halflings-regular.svg +288 -0
  192. data/skeleton/vendor/bootswatch/fonts/glyphicons-halflings-regular.ttf +0 -0
  193. data/skeleton/vendor/bootswatch/fonts/glyphicons-halflings-regular.woff +0 -0
  194. data/skeleton/vendor/bootswatch/fonts/glyphicons-halflings-regular.woff2 +0 -0
  195. data/skeleton/vendor/bootswatch/journal/_bootswatch.scss +144 -0
  196. data/skeleton/vendor/bootswatch/journal/_variables.scss +868 -0
  197. data/skeleton/vendor/bootswatch/journal/bootstrap.css +6891 -0
  198. data/skeleton/vendor/bootswatch/journal/bootstrap.min.css +11 -0
  199. data/skeleton/vendor/bootswatch/journal/bootswatch.less +144 -0
  200. data/skeleton/vendor/bootswatch/journal/thumbnail.png +0 -0
  201. data/skeleton/vendor/bootswatch/journal/variables.less +867 -0
  202. data/skeleton/vendor/bootswatch/lumen/_bootswatch.scss +520 -0
  203. data/skeleton/vendor/bootswatch/lumen/_variables.scss +868 -0
  204. data/skeleton/vendor/bootswatch/lumen/bootstrap.css +7216 -0
  205. data/skeleton/vendor/bootswatch/lumen/bootstrap.min.css +11 -0
  206. data/skeleton/vendor/bootswatch/lumen/bootswatch.less +520 -0
  207. data/skeleton/vendor/bootswatch/lumen/thumbnail.png +0 -0
  208. data/skeleton/vendor/bootswatch/lumen/variables.less +867 -0
  209. data/skeleton/vendor/bootswatch/paper/_bootswatch.scss +585 -0
  210. data/skeleton/vendor/bootswatch/paper/_variables.scss +868 -0
  211. data/skeleton/vendor/bootswatch/paper/bootstrap.css +7502 -0
  212. data/skeleton/vendor/bootswatch/paper/bootstrap.min.css +11 -0
  213. data/skeleton/vendor/bootswatch/paper/bootswatch.less +585 -0
  214. data/skeleton/vendor/bootswatch/paper/thumbnail.png +0 -0
  215. data/skeleton/vendor/bootswatch/paper/variables.less +867 -0
  216. data/skeleton/vendor/bootswatch/readable/_bootswatch.scss +182 -0
  217. data/skeleton/vendor/bootswatch/readable/_variables.scss +868 -0
  218. data/skeleton/vendor/bootswatch/readable/bootstrap.css +6915 -0
  219. data/skeleton/vendor/bootswatch/readable/bootstrap.min.css +11 -0
  220. data/skeleton/vendor/bootswatch/readable/bootswatch.less +182 -0
  221. data/skeleton/vendor/bootswatch/readable/thumbnail.png +0 -0
  222. data/skeleton/vendor/bootswatch/readable/variables.less +867 -0
  223. data/skeleton/vendor/bootswatch/sandstone/_bootswatch.scss +194 -0
  224. data/skeleton/vendor/bootswatch/sandstone/_variables.scss +868 -0
  225. data/skeleton/vendor/bootswatch/sandstone/bootstrap.css +6953 -0
  226. data/skeleton/vendor/bootswatch/sandstone/bootstrap.min.css +11 -0
  227. data/skeleton/vendor/bootswatch/sandstone/bootswatch.less +194 -0
  228. data/skeleton/vendor/bootswatch/sandstone/thumbnail.png +0 -0
  229. data/skeleton/vendor/bootswatch/sandstone/variables.less +867 -0
  230. data/skeleton/vendor/bootswatch/simplex/_bootswatch.scss +169 -0
  231. data/skeleton/vendor/bootswatch/simplex/_variables.scss +868 -0
  232. data/skeleton/vendor/bootswatch/simplex/bootstrap.css +6953 -0
  233. data/skeleton/vendor/bootswatch/simplex/bootstrap.min.css +11 -0
  234. data/skeleton/vendor/bootswatch/simplex/bootswatch.less +169 -0
  235. data/skeleton/vendor/bootswatch/simplex/thumbnail.png +0 -0
  236. data/skeleton/vendor/bootswatch/simplex/variables.less +867 -0
  237. data/skeleton/vendor/bootswatch/slate/_bootswatch.scss +441 -0
  238. data/skeleton/vendor/bootswatch/slate/_variables.scss +868 -0
  239. data/skeleton/vendor/bootswatch/slate/bootstrap.css +7301 -0
  240. data/skeleton/vendor/bootswatch/slate/bootstrap.min.css +11 -0
  241. data/skeleton/vendor/bootswatch/slate/bootswatch.less +441 -0
  242. data/skeleton/vendor/bootswatch/slate/thumbnail.png +0 -0
  243. data/skeleton/vendor/bootswatch/slate/variables.less +867 -0
  244. data/skeleton/vendor/bootswatch/spacelab/_bootswatch.scss +137 -0
  245. data/skeleton/vendor/bootswatch/spacelab/_variables.scss +868 -0
  246. data/skeleton/vendor/bootswatch/spacelab/bootstrap.css +6998 -0
  247. data/skeleton/vendor/bootswatch/spacelab/bootstrap.min.css +11 -0
  248. data/skeleton/vendor/bootswatch/spacelab/bootswatch.less +137 -0
  249. data/skeleton/vendor/bootswatch/spacelab/thumbnail.png +0 -0
  250. data/skeleton/vendor/bootswatch/spacelab/variables.less +867 -0
  251. data/skeleton/vendor/bootswatch/superhero/_bootswatch.scss +356 -0
  252. data/skeleton/vendor/bootswatch/superhero/_variables.scss +868 -0
  253. data/skeleton/vendor/bootswatch/superhero/bootstrap.css +7048 -0
  254. data/skeleton/vendor/bootswatch/superhero/bootstrap.min.css +11 -0
  255. data/skeleton/vendor/bootswatch/superhero/bootswatch.less +356 -0
  256. data/skeleton/vendor/bootswatch/superhero/thumbnail.png +0 -0
  257. data/skeleton/vendor/bootswatch/superhero/variables.less +867 -0
  258. data/skeleton/vendor/bootswatch/united/_bootswatch.scss +55 -0
  259. data/skeleton/vendor/bootswatch/united/_variables.scss +868 -0
  260. data/skeleton/vendor/bootswatch/united/bootstrap.css +6813 -0
  261. data/skeleton/vendor/bootswatch/united/bootstrap.min.css +11 -0
  262. data/skeleton/vendor/bootswatch/united/bootswatch.less +55 -0
  263. data/skeleton/vendor/bootswatch/united/thumbnail.png +0 -0
  264. data/skeleton/vendor/bootswatch/united/variables.less +867 -0
  265. data/skeleton/vendor/bootswatch/yeti/_bootswatch.scss +437 -0
  266. data/skeleton/vendor/bootswatch/yeti/_variables.scss +868 -0
  267. data/skeleton/vendor/bootswatch/yeti/bootstrap.css +7107 -0
  268. data/skeleton/vendor/bootswatch/yeti/bootstrap.min.css +11 -0
  269. data/skeleton/vendor/bootswatch/yeti/bootswatch.less +437 -0
  270. data/skeleton/vendor/bootswatch/yeti/thumbnail.png +0 -0
  271. data/skeleton/vendor/bootswatch/yeti/variables.less +867 -0
  272. data/skeleton/vendor/font-awesome/.bower.json +36 -0
  273. data/skeleton/vendor/font-awesome/.gitignore +33 -0
  274. data/skeleton/vendor/font-awesome/.npmignore +42 -0
  275. data/skeleton/vendor/font-awesome/HELP-US-OUT.txt +7 -0
  276. data/skeleton/vendor/font-awesome/bower.json +22 -0
  277. data/skeleton/vendor/font-awesome/css/font-awesome.css +2026 -0
  278. data/skeleton/vendor/font-awesome/css/font-awesome.css.map +7 -0
  279. data/skeleton/vendor/font-awesome/css/font-awesome.min.css +4 -0
  280. data/skeleton/vendor/font-awesome/fonts/FontAwesome.otf +0 -0
  281. data/skeleton/vendor/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  282. data/skeleton/vendor/font-awesome/fonts/fontawesome-webfont.svg +640 -0
  283. data/skeleton/vendor/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  284. data/skeleton/vendor/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  285. data/skeleton/vendor/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  286. data/skeleton/vendor/font-awesome/less/animated.less +34 -0
  287. data/skeleton/vendor/font-awesome/less/bordered-pulled.less +25 -0
  288. data/skeleton/vendor/font-awesome/less/core.less +12 -0
  289. data/skeleton/vendor/font-awesome/less/fixed-width.less +6 -0
  290. data/skeleton/vendor/font-awesome/less/font-awesome.less +17 -0
  291. data/skeleton/vendor/font-awesome/less/icons.less +677 -0
  292. data/skeleton/vendor/font-awesome/less/larger.less +13 -0
  293. data/skeleton/vendor/font-awesome/less/list.less +19 -0
  294. data/skeleton/vendor/font-awesome/less/mixins.less +26 -0
  295. data/skeleton/vendor/font-awesome/less/path.less +15 -0
  296. data/skeleton/vendor/font-awesome/less/rotated-flipped.less +20 -0
  297. data/skeleton/vendor/font-awesome/less/stacked.less +20 -0
  298. data/skeleton/vendor/font-awesome/less/variables.less +688 -0
  299. data/skeleton/vendor/font-awesome/scss/_animated.scss +34 -0
  300. data/skeleton/vendor/font-awesome/scss/_bordered-pulled.scss +25 -0
  301. data/skeleton/vendor/font-awesome/scss/_core.scss +12 -0
  302. data/skeleton/vendor/font-awesome/scss/_fixed-width.scss +6 -0
  303. data/skeleton/vendor/font-awesome/scss/_icons.scss +677 -0
  304. data/skeleton/vendor/font-awesome/scss/_larger.scss +13 -0
  305. data/skeleton/vendor/font-awesome/scss/_list.scss +19 -0
  306. data/skeleton/vendor/font-awesome/scss/_mixins.scss +26 -0
  307. data/skeleton/vendor/font-awesome/scss/_path.scss +15 -0
  308. data/skeleton/vendor/font-awesome/scss/_rotated-flipped.scss +20 -0
  309. data/skeleton/vendor/font-awesome/scss/_stacked.scss +20 -0
  310. data/skeleton/vendor/font-awesome/scss/_variables.scss +688 -0
  311. data/skeleton/vendor/font-awesome/scss/font-awesome.scss +17 -0
  312. data/skeleton/vendor/google-code-prettify/.bower.json +26 -0
  313. data/skeleton/vendor/google-code-prettify/CHANGES.html +172 -0
  314. data/skeleton/vendor/google-code-prettify/COPYING +191 -0
  315. data/skeleton/vendor/google-code-prettify/README-zh-Hans.html +143 -0
  316. data/skeleton/vendor/google-code-prettify/README.html +233 -0
  317. data/skeleton/vendor/google-code-prettify/README.md +54 -0
  318. data/skeleton/vendor/google-code-prettify/bin/prettify.min.css +1 -0
  319. data/skeleton/vendor/google-code-prettify/bin/prettify.min.js +30 -0
  320. data/skeleton/vendor/google-code-prettify/bin/run_prettify.min.js +34 -0
  321. data/skeleton/vendor/google-code-prettify/bower.json +16 -0
  322. data/skeleton/vendor/google-code-prettify/examples/quine.html +55 -0
  323. data/skeleton/vendor/google-code-prettify/src/lang-apollo.js +51 -0
  324. data/skeleton/vendor/google-code-prettify/src/lang-basic.js +32 -0
  325. data/skeleton/vendor/google-code-prettify/src/lang-clj.js +64 -0
  326. data/skeleton/vendor/google-code-prettify/src/lang-css.js +159 -0
  327. data/skeleton/vendor/google-code-prettify/src/lang-dart.js +88 -0
  328. data/skeleton/vendor/google-code-prettify/src/lang-erlang.js +92 -0
  329. data/skeleton/vendor/google-code-prettify/src/lang-go.js +58 -0
  330. data/skeleton/vendor/google-code-prettify/src/lang-hs.js +101 -0
  331. data/skeleton/vendor/google-code-prettify/src/lang-lisp.js +94 -0
  332. data/skeleton/vendor/google-code-prettify/src/lang-llvm.js +61 -0
  333. data/skeleton/vendor/google-code-prettify/src/lang-lua.js +59 -0
  334. data/skeleton/vendor/google-code-prettify/src/lang-matlab.js +180 -0
  335. data/skeleton/vendor/google-code-prettify/src/lang-ml.js +56 -0
  336. data/skeleton/vendor/google-code-prettify/src/lang-mumps.js +139 -0
  337. data/skeleton/vendor/google-code-prettify/src/lang-n.js +65 -0
  338. data/skeleton/vendor/google-code-prettify/src/lang-pascal.js +32 -0
  339. data/skeleton/vendor/google-code-prettify/src/lang-proto.js +35 -0
  340. data/skeleton/vendor/google-code-prettify/src/lang-r.js +57 -0
  341. data/skeleton/vendor/google-code-prettify/src/lang-rd.js +47 -0
  342. data/skeleton/vendor/google-code-prettify/src/lang-scala.js +54 -0
  343. data/skeleton/vendor/google-code-prettify/src/lang-sql.js +58 -0
  344. data/skeleton/vendor/google-code-prettify/src/lang-tcl.js +62 -0
  345. data/skeleton/vendor/google-code-prettify/src/lang-tex.js +46 -0
  346. data/skeleton/vendor/google-code-prettify/src/lang-vb.js +66 -0
  347. data/skeleton/vendor/google-code-prettify/src/lang-vhdl.js +34 -0
  348. data/skeleton/vendor/google-code-prettify/src/lang-wiki.js +53 -0
  349. data/skeleton/vendor/google-code-prettify/src/lang-xq.js +67 -0
  350. data/skeleton/vendor/google-code-prettify/src/lang-yaml.js +27 -0
  351. data/skeleton/vendor/google-code-prettify/src/prettify.css +52 -0
  352. data/skeleton/vendor/google-code-prettify/src/prettify.js +1655 -0
  353. data/skeleton/vendor/google-code-prettify/src/run_prettify.js +1905 -0
  354. data/skeleton/vendor/google-code-prettify/styles/demo.html +61 -0
  355. data/skeleton/vendor/google-code-prettify/styles/desert.css +34 -0
  356. data/skeleton/vendor/google-code-prettify/styles/doxy.css +64 -0
  357. data/skeleton/vendor/google-code-prettify/styles/index.html +89 -0
  358. data/skeleton/vendor/google-code-prettify/styles/sons-of-obsidian.css +118 -0
  359. data/skeleton/vendor/google-code-prettify/styles/sunburst.css +51 -0
  360. data/skeleton/vendor/jquery/.bower.json +38 -0
  361. data/skeleton/vendor/jquery/MIT-LICENSE.txt +21 -0
  362. data/skeleton/vendor/jquery/bower.json +28 -0
  363. data/skeleton/vendor/jquery/dist/jquery.js +9210 -0
  364. data/skeleton/vendor/jquery/dist/jquery.min.js +5 -0
  365. data/skeleton/vendor/jquery/dist/jquery.min.map +1 -0
  366. data/skeleton/vendor/jquery/src/ajax/jsonp.js +89 -0
  367. data/skeleton/vendor/jquery/src/ajax/load.js +75 -0
  368. data/skeleton/vendor/jquery/src/ajax/parseJSON.js +13 -0
  369. data/skeleton/vendor/jquery/src/ajax/parseXML.js +28 -0
  370. data/skeleton/vendor/jquery/src/ajax/script.js +64 -0
  371. data/skeleton/vendor/jquery/src/ajax/var/nonce.js +5 -0
  372. data/skeleton/vendor/jquery/src/ajax/var/rquery.js +3 -0
  373. data/skeleton/vendor/jquery/src/ajax/xhr.js +136 -0
  374. data/skeleton/vendor/jquery/src/ajax.js +786 -0
  375. data/skeleton/vendor/jquery/src/attributes/attr.js +141 -0
  376. data/skeleton/vendor/jquery/src/attributes/classes.js +158 -0
  377. data/skeleton/vendor/jquery/src/attributes/prop.js +94 -0
  378. data/skeleton/vendor/jquery/src/attributes/support.js +35 -0
  379. data/skeleton/vendor/jquery/src/attributes/val.js +161 -0
  380. data/skeleton/vendor/jquery/src/attributes.js +11 -0
  381. data/skeleton/vendor/jquery/src/callbacks.js +205 -0
  382. data/skeleton/vendor/jquery/src/core/access.js +60 -0
  383. data/skeleton/vendor/jquery/src/core/init.js +123 -0
  384. data/skeleton/vendor/jquery/src/core/parseHTML.js +39 -0
  385. data/skeleton/vendor/jquery/src/core/ready.js +97 -0
  386. data/skeleton/vendor/jquery/src/core/var/rsingleTag.js +4 -0
  387. data/skeleton/vendor/jquery/src/core.js +502 -0
  388. data/skeleton/vendor/jquery/src/css/addGetHookIf.js +22 -0
  389. data/skeleton/vendor/jquery/src/css/curCSS.js +57 -0
  390. data/skeleton/vendor/jquery/src/css/defaultDisplay.js +70 -0
  391. data/skeleton/vendor/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  392. data/skeleton/vendor/jquery/src/css/support.js +96 -0
  393. data/skeleton/vendor/jquery/src/css/swap.js +28 -0
  394. data/skeleton/vendor/jquery/src/css/var/cssExpand.js +3 -0
  395. data/skeleton/vendor/jquery/src/css/var/getStyles.js +12 -0
  396. data/skeleton/vendor/jquery/src/css/var/isHidden.js +13 -0
  397. data/skeleton/vendor/jquery/src/css/var/rmargin.js +3 -0
  398. data/skeleton/vendor/jquery/src/css/var/rnumnonpx.js +5 -0
  399. data/skeleton/vendor/jquery/src/css.js +450 -0
  400. data/skeleton/vendor/jquery/src/data/Data.js +181 -0
  401. data/skeleton/vendor/jquery/src/data/accepts.js +20 -0
  402. data/skeleton/vendor/jquery/src/data/var/data_priv.js +5 -0
  403. data/skeleton/vendor/jquery/src/data/var/data_user.js +5 -0
  404. data/skeleton/vendor/jquery/src/data.js +178 -0
  405. data/skeleton/vendor/jquery/src/deferred.js +149 -0
  406. data/skeleton/vendor/jquery/src/deprecated.js +13 -0
  407. data/skeleton/vendor/jquery/src/dimensions.js +50 -0
  408. data/skeleton/vendor/jquery/src/effects/Tween.js +114 -0
  409. data/skeleton/vendor/jquery/src/effects/animatedSelector.js +13 -0
  410. data/skeleton/vendor/jquery/src/effects.js +648 -0
  411. data/skeleton/vendor/jquery/src/event/ajax.js +13 -0
  412. data/skeleton/vendor/jquery/src/event/alias.js +39 -0
  413. data/skeleton/vendor/jquery/src/event/support.js +9 -0
  414. data/skeleton/vendor/jquery/src/event.js +868 -0
  415. data/skeleton/vendor/jquery/src/exports/amd.js +24 -0
  416. data/skeleton/vendor/jquery/src/exports/global.js +32 -0
  417. data/skeleton/vendor/jquery/src/intro.js +44 -0
  418. data/skeleton/vendor/jquery/src/jquery.js +37 -0
  419. data/skeleton/vendor/jquery/src/manipulation/_evalUrl.js +18 -0
  420. data/skeleton/vendor/jquery/src/manipulation/support.js +32 -0
  421. data/skeleton/vendor/jquery/src/manipulation/var/rcheckableType.js +3 -0
  422. data/skeleton/vendor/jquery/src/manipulation.js +580 -0
  423. data/skeleton/vendor/jquery/src/offset.js +207 -0
  424. data/skeleton/vendor/jquery/src/outro.js +1 -0
  425. data/skeleton/vendor/jquery/src/queue/delay.js +22 -0
  426. data/skeleton/vendor/jquery/src/queue.js +142 -0
  427. data/skeleton/vendor/jquery/src/selector-native.js +172 -0
  428. data/skeleton/vendor/jquery/src/selector-sizzle.js +14 -0
  429. data/skeleton/vendor/jquery/src/selector.js +1 -0
  430. data/skeleton/vendor/jquery/src/serialize.js +111 -0
  431. data/skeleton/vendor/jquery/src/sizzle/dist/sizzle.js +2067 -0
  432. data/skeleton/vendor/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  433. data/skeleton/vendor/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  434. data/skeleton/vendor/jquery/src/traversing/findFilter.js +100 -0
  435. data/skeleton/vendor/jquery/src/traversing/var/rneedsContext.js +6 -0
  436. data/skeleton/vendor/jquery/src/traversing.js +199 -0
  437. data/skeleton/vendor/jquery/src/var/arr.js +3 -0
  438. data/skeleton/vendor/jquery/src/var/class2type.js +4 -0
  439. data/skeleton/vendor/jquery/src/var/concat.js +5 -0
  440. data/skeleton/vendor/jquery/src/var/hasOwn.js +5 -0
  441. data/skeleton/vendor/jquery/src/var/indexOf.js +5 -0
  442. data/skeleton/vendor/jquery/src/var/pnum.js +3 -0
  443. data/skeleton/vendor/jquery/src/var/push.js +5 -0
  444. data/skeleton/vendor/jquery/src/var/rnotwhite.js +3 -0
  445. data/skeleton/vendor/jquery/src/var/slice.js +5 -0
  446. data/skeleton/vendor/jquery/src/var/strundefined.js +3 -0
  447. data/skeleton/vendor/jquery/src/var/support.js +4 -0
  448. data/skeleton/vendor/jquery/src/var/toString.js +5 -0
  449. data/skeleton/vendor/jquery/src/wrap.js +79 -0
  450. data/skeleton/vendor/vue/.bower.json +29 -0
  451. data/skeleton/vendor/vue/LICENSE +21 -0
  452. data/skeleton/vendor/vue/bower.json +16 -0
  453. data/skeleton/vendor/vue/build/banner.js +8 -0
  454. data/skeleton/vendor/vue/build/grunt-tasks/build.js +50 -0
  455. data/skeleton/vendor/vue/build/grunt-tasks/casper.js +26 -0
  456. data/skeleton/vendor/vue/build/grunt-tasks/codecov.js +18 -0
  457. data/skeleton/vendor/vue/build/grunt-tasks/open.js +11 -0
  458. data/skeleton/vendor/vue/build/grunt-tasks/release.js +84 -0
  459. data/skeleton/vendor/vue/build/saucelabs.config.js +79 -0
  460. data/skeleton/vendor/vue/build/webpack.build.dev.config.js +20 -0
  461. data/skeleton/vendor/vue/build/webpack.build.prod.config.js +25 -0
  462. data/skeleton/vendor/vue/build/webpack.dev.config.js +10 -0
  463. data/skeleton/vendor/vue/build/webpack.test.config.js +13 -0
  464. data/skeleton/vendor/vue/circle.yml +4 -0
  465. data/skeleton/vendor/vue/dist/vue.js +9863 -0
  466. data/skeleton/vendor/vue/dist/vue.min.js +8 -0
  467. data/skeleton/vendor/vue/perf/bench.html +2 -0
  468. data/skeleton/vendor/vue/perf/bench.js +87 -0
  469. data/skeleton/vendor/vue/src/api/child.js +49 -0
  470. data/skeleton/vendor/vue/src/api/data.js +154 -0
  471. data/skeleton/vendor/vue/src/api/dom.js +226 -0
  472. data/skeleton/vendor/vue/src/api/events.js +174 -0
  473. data/skeleton/vendor/vue/src/api/global.js +119 -0
  474. data/skeleton/vendor/vue/src/api/lifecycle.js +68 -0
  475. data/skeleton/vendor/vue/src/batcher.js +98 -0
  476. data/skeleton/vendor/vue/src/cache.js +112 -0
  477. data/skeleton/vendor/vue/src/compiler/compile-props.js +183 -0
  478. data/skeleton/vendor/vue/src/compiler/compile.js +631 -0
  479. data/skeleton/vendor/vue/src/compiler/index.js +4 -0
  480. data/skeleton/vendor/vue/src/compiler/transclude.js +144 -0
  481. data/skeleton/vendor/vue/src/config.js +124 -0
  482. data/skeleton/vendor/vue/src/directive.js +224 -0
  483. data/skeleton/vendor/vue/src/directives/attr.js +51 -0
  484. data/skeleton/vendor/vue/src/directives/class.js +70 -0
  485. data/skeleton/vendor/vue/src/directives/cloak.js +10 -0
  486. data/skeleton/vendor/vue/src/directives/component.js +300 -0
  487. data/skeleton/vendor/vue/src/directives/el.js +12 -0
  488. data/skeleton/vendor/vue/src/directives/html.js +40 -0
  489. data/skeleton/vendor/vue/src/directives/if.js +126 -0
  490. data/skeleton/vendor/vue/src/directives/index.js +24 -0
  491. data/skeleton/vendor/vue/src/directives/model/checkbox.js +24 -0
  492. data/skeleton/vendor/vue/src/directives/model/index.js +76 -0
  493. data/skeleton/vendor/vue/src/directives/model/radio.js +26 -0
  494. data/skeleton/vendor/vue/src/directives/model/select.js +199 -0
  495. data/skeleton/vendor/vue/src/directives/model/text.js +159 -0
  496. data/skeleton/vendor/vue/src/directives/on.js +60 -0
  497. data/skeleton/vendor/vue/src/directives/prop.js +62 -0
  498. data/skeleton/vendor/vue/src/directives/ref.js +22 -0
  499. data/skeleton/vendor/vue/src/directives/repeat.js +754 -0
  500. data/skeleton/vendor/vue/src/directives/show.js +8 -0
  501. data/skeleton/vendor/vue/src/directives/style.js +110 -0
  502. data/skeleton/vendor/vue/src/directives/text.js +14 -0
  503. data/skeleton/vendor/vue/src/directives/transition.js +26 -0
  504. data/skeleton/vendor/vue/src/element-directives/content.js +111 -0
  505. data/skeleton/vendor/vue/src/element-directives/index.js +2 -0
  506. data/skeleton/vendor/vue/src/element-directives/partial.js +73 -0
  507. data/skeleton/vendor/vue/src/filters/array-filters.js +85 -0
  508. data/skeleton/vendor/vue/src/filters/index.js +137 -0
  509. data/skeleton/vendor/vue/src/instance/compile.js +196 -0
  510. data/skeleton/vendor/vue/src/instance/events.js +139 -0
  511. data/skeleton/vendor/vue/src/instance/init.js +89 -0
  512. data/skeleton/vendor/vue/src/instance/misc.js +93 -0
  513. data/skeleton/vendor/vue/src/instance/scope.js +282 -0
  514. data/skeleton/vendor/vue/src/observer/array.js +92 -0
  515. data/skeleton/vendor/vue/src/observer/dep.js +61 -0
  516. data/skeleton/vendor/vue/src/observer/index.js +212 -0
  517. data/skeleton/vendor/vue/src/observer/object.js +82 -0
  518. data/skeleton/vendor/vue/src/parsers/directive.js +179 -0
  519. data/skeleton/vendor/vue/src/parsers/expression.js +264 -0
  520. data/skeleton/vendor/vue/src/parsers/path.js +348 -0
  521. data/skeleton/vendor/vue/src/parsers/template.js +264 -0
  522. data/skeleton/vendor/vue/src/parsers/text.js +176 -0
  523. data/skeleton/vendor/vue/src/transition/index.js +128 -0
  524. data/skeleton/vendor/vue/src/transition/queue.js +35 -0
  525. data/skeleton/vendor/vue/src/transition/transition.js +308 -0
  526. data/skeleton/vendor/vue/src/util/component.js +124 -0
  527. data/skeleton/vendor/vue/src/util/debug.js +64 -0
  528. data/skeleton/vendor/vue/src/util/dom.js +262 -0
  529. data/skeleton/vendor/vue/src/util/env.js +85 -0
  530. data/skeleton/vendor/vue/src/util/index.js +9 -0
  531. data/skeleton/vendor/vue/src/util/lang.js +289 -0
  532. data/skeleton/vendor/vue/src/util/options.js +353 -0
  533. data/skeleton/vendor/vue/src/vue.js +89 -0
  534. data/skeleton/vendor/vue/src/watcher.js +292 -0
  535. data/tmp/.keep +0 -0
  536. metadata +677 -0
@@ -0,0 +1,176 @@
1
+ var Cache = require('../cache')
2
+ var config = require('../config')
3
+ var dirParser = require('./directive')
4
+ var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g
5
+ var cache, tagRE, htmlRE, firstChar, lastChar
6
+
7
+ /**
8
+ * Escape a string so it can be used in a RegExp
9
+ * constructor.
10
+ *
11
+ * @param {String} str
12
+ */
13
+
14
+ function escapeRegex (str) {
15
+ return str.replace(regexEscapeRE, '\\$&')
16
+ }
17
+
18
+ /**
19
+ * Compile the interpolation tag regex.
20
+ *
21
+ * @return {RegExp}
22
+ */
23
+
24
+ function compileRegex () {
25
+ config._delimitersChanged = false
26
+ var open = config.delimiters[0]
27
+ var close = config.delimiters[1]
28
+ firstChar = open.charAt(0)
29
+ lastChar = close.charAt(close.length - 1)
30
+ var firstCharRE = escapeRegex(firstChar)
31
+ var lastCharRE = escapeRegex(lastChar)
32
+ var openRE = escapeRegex(open)
33
+ var closeRE = escapeRegex(close)
34
+ tagRE = new RegExp(
35
+ firstCharRE + '?' + openRE +
36
+ '(.+?)' +
37
+ closeRE + lastCharRE + '?',
38
+ 'g'
39
+ )
40
+ htmlRE = new RegExp(
41
+ '^' + firstCharRE + openRE +
42
+ '.*' +
43
+ closeRE + lastCharRE + '$'
44
+ )
45
+ // reset cache
46
+ cache = new Cache(1000)
47
+ }
48
+
49
+ /**
50
+ * Parse a template text string into an array of tokens.
51
+ *
52
+ * @param {String} text
53
+ * @return {Array<Object> | null}
54
+ * - {String} type
55
+ * - {String} value
56
+ * - {Boolean} [html]
57
+ * - {Boolean} [oneTime]
58
+ */
59
+
60
+ exports.parse = function (text) {
61
+ if (config._delimitersChanged) {
62
+ compileRegex()
63
+ }
64
+ var hit = cache.get(text)
65
+ if (hit) {
66
+ return hit
67
+ }
68
+ text = text.replace(/\n/g, '')
69
+ if (!tagRE.test(text)) {
70
+ return null
71
+ }
72
+ var tokens = []
73
+ var lastIndex = tagRE.lastIndex = 0
74
+ var match, index, value, first, oneTime, twoWay
75
+ /* eslint-disable no-cond-assign */
76
+ while (match = tagRE.exec(text)) {
77
+ /* eslint-enable no-cond-assign */
78
+ index = match.index
79
+ // push text token
80
+ if (index > lastIndex) {
81
+ tokens.push({
82
+ value: text.slice(lastIndex, index)
83
+ })
84
+ }
85
+ // tag token
86
+ first = match[1].charCodeAt(0)
87
+ oneTime = first === 42 // *
88
+ twoWay = first === 64 // @
89
+ value = oneTime || twoWay
90
+ ? match[1].slice(1)
91
+ : match[1]
92
+ tokens.push({
93
+ tag: true,
94
+ value: value.trim(),
95
+ html: htmlRE.test(match[0]),
96
+ oneTime: oneTime,
97
+ twoWay: twoWay
98
+ })
99
+ lastIndex = index + match[0].length
100
+ }
101
+ if (lastIndex < text.length) {
102
+ tokens.push({
103
+ value: text.slice(lastIndex)
104
+ })
105
+ }
106
+ cache.put(text, tokens)
107
+ return tokens
108
+ }
109
+
110
+ /**
111
+ * Format a list of tokens into an expression.
112
+ * e.g. tokens parsed from 'a {{b}} c' can be serialized
113
+ * into one single expression as '"a " + b + " c"'.
114
+ *
115
+ * @param {Array} tokens
116
+ * @param {Vue} [vm]
117
+ * @return {String}
118
+ */
119
+
120
+ exports.tokensToExp = function (tokens, vm) {
121
+ return tokens.length > 1
122
+ ? tokens.map(function (token) {
123
+ return formatToken(token, vm)
124
+ }).join('+')
125
+ : formatToken(tokens[0], vm, true)
126
+ }
127
+
128
+ /**
129
+ * Format a single token.
130
+ *
131
+ * @param {Object} token
132
+ * @param {Vue} [vm]
133
+ * @param {Boolean} single
134
+ * @return {String}
135
+ */
136
+
137
+ function formatToken (token, vm, single) {
138
+ return token.tag
139
+ ? vm && token.oneTime
140
+ ? '"' + vm.$eval(token.value) + '"'
141
+ : inlineFilters(token.value, single)
142
+ : '"' + token.value + '"'
143
+ }
144
+
145
+ /**
146
+ * For an attribute with multiple interpolation tags,
147
+ * e.g. attr="some-{{thing | filter}}", in order to combine
148
+ * the whole thing into a single watchable expression, we
149
+ * have to inline those filters. This function does exactly
150
+ * that. This is a bit hacky but it avoids heavy changes
151
+ * to directive parser and watcher mechanism.
152
+ *
153
+ * @param {String} exp
154
+ * @param {Boolean} single
155
+ * @return {String}
156
+ */
157
+
158
+ var filterRE = /[^|]\|[^|]/
159
+ function inlineFilters (exp, single) {
160
+ if (!filterRE.test(exp)) {
161
+ return single
162
+ ? exp
163
+ : '(' + exp + ')'
164
+ } else {
165
+ var dir = dirParser.parse(exp)[0]
166
+ if (!dir.filters) {
167
+ return '(' + exp + ')'
168
+ } else {
169
+ return 'this._applyFilters(' +
170
+ dir.expression + // value
171
+ ',null,' + // oldValue (null for read)
172
+ JSON.stringify(dir.filters) + // filter descriptors
173
+ ',false)' // write?
174
+ }
175
+ }
176
+ }
@@ -0,0 +1,128 @@
1
+ var _ = require('../util')
2
+
3
+ /**
4
+ * Append with transition.
5
+ *
6
+ * @oaram {Element} el
7
+ * @param {Element} target
8
+ * @param {Vue} vm
9
+ * @param {Function} [cb]
10
+ */
11
+
12
+ exports.append = function (el, target, vm, cb) {
13
+ apply(el, 1, function () {
14
+ target.appendChild(el)
15
+ }, vm, cb)
16
+ }
17
+
18
+ /**
19
+ * InsertBefore with transition.
20
+ *
21
+ * @oaram {Element} el
22
+ * @param {Element} target
23
+ * @param {Vue} vm
24
+ * @param {Function} [cb]
25
+ */
26
+
27
+ exports.before = function (el, target, vm, cb) {
28
+ apply(el, 1, function () {
29
+ _.before(el, target)
30
+ }, vm, cb)
31
+ }
32
+
33
+ /**
34
+ * Remove with transition.
35
+ *
36
+ * @oaram {Element} el
37
+ * @param {Vue} vm
38
+ * @param {Function} [cb]
39
+ */
40
+
41
+ exports.remove = function (el, vm, cb) {
42
+ apply(el, -1, function () {
43
+ _.remove(el)
44
+ }, vm, cb)
45
+ }
46
+
47
+ /**
48
+ * Remove by appending to another parent with transition.
49
+ * This is only used in block operations.
50
+ *
51
+ * @oaram {Element} el
52
+ * @param {Element} target
53
+ * @param {Vue} vm
54
+ * @param {Function} [cb]
55
+ */
56
+
57
+ exports.removeThenAppend = function (el, target, vm, cb) {
58
+ apply(el, -1, function () {
59
+ target.appendChild(el)
60
+ }, vm, cb)
61
+ }
62
+
63
+ /**
64
+ * Append the childNodes of a fragment to target.
65
+ *
66
+ * @param {DocumentFragment} block
67
+ * @param {Node} target
68
+ * @param {Vue} vm
69
+ */
70
+
71
+ exports.blockAppend = function (block, target, vm) {
72
+ var nodes = _.toArray(block.childNodes)
73
+ for (var i = 0, l = nodes.length; i < l; i++) {
74
+ exports.before(nodes[i], target, vm)
75
+ }
76
+ }
77
+
78
+ /**
79
+ * Remove a block of nodes between two edge nodes.
80
+ *
81
+ * @param {Node} start
82
+ * @param {Node} end
83
+ * @param {Vue} vm
84
+ */
85
+
86
+ exports.blockRemove = function (start, end, vm) {
87
+ var node = start.nextSibling
88
+ var next
89
+ while (node !== end) {
90
+ next = node.nextSibling
91
+ exports.remove(node, vm)
92
+ node = next
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Apply transitions with an operation callback.
98
+ *
99
+ * @oaram {Element} el
100
+ * @param {Number} direction
101
+ * 1: enter
102
+ * -1: leave
103
+ * @param {Function} op - the actual DOM operation
104
+ * @param {Vue} vm
105
+ * @param {Function} [cb]
106
+ */
107
+
108
+ var apply = exports.apply = function (el, direction, op, vm, cb) {
109
+ var transition = el.__v_trans
110
+ if (
111
+ !transition ||
112
+ // skip if there are no js hooks and CSS transition is
113
+ // not supported
114
+ (!transition.hooks && !_.transitionEndEvent) ||
115
+ // skip transitions for initial compile
116
+ !vm._isCompiled ||
117
+ // if the vm is being manipulated by a parent directive
118
+ // during the parent's compilation phase, skip the
119
+ // animation.
120
+ (vm.$parent && !vm.$parent._isCompiled)
121
+ ) {
122
+ op()
123
+ if (cb) cb()
124
+ return
125
+ }
126
+ var action = direction > 0 ? 'enter' : 'leave'
127
+ transition[action](op, cb)
128
+ }
@@ -0,0 +1,35 @@
1
+ var _ = require('../util')
2
+ var queue = []
3
+ var queued = false
4
+
5
+ /**
6
+ * Push a job into the queue.
7
+ *
8
+ * @param {Function} job
9
+ */
10
+
11
+ exports.push = function (job) {
12
+ queue.push(job)
13
+ if (!queued) {
14
+ queued = true
15
+ _.nextTick(flush)
16
+ }
17
+ }
18
+
19
+ /**
20
+ * Flush the queue, and do one forced reflow before
21
+ * triggering transitions.
22
+ */
23
+
24
+ function flush () {
25
+ // Force layout
26
+ var f = document.documentElement.offsetHeight
27
+ for (var i = 0; i < queue.length; i++) {
28
+ queue[i]()
29
+ }
30
+ queue = []
31
+ queued = false
32
+ // dummy return, so js linters don't complain about
33
+ // unused variable f
34
+ return f
35
+ }
@@ -0,0 +1,308 @@
1
+ var _ = require('../util')
2
+ var queue = require('./queue')
3
+ var addClass = _.addClass
4
+ var removeClass = _.removeClass
5
+ var transitionEndEvent = _.transitionEndEvent
6
+ var animationEndEvent = _.animationEndEvent
7
+ var transDurationProp = _.transitionProp + 'Duration'
8
+ var animDurationProp = _.animationProp + 'Duration'
9
+
10
+ var TYPE_TRANSITION = 1
11
+ var TYPE_ANIMATION = 2
12
+
13
+ /**
14
+ * A Transition object that encapsulates the state and logic
15
+ * of the transition.
16
+ *
17
+ * @param {Element} el
18
+ * @param {String} id
19
+ * @param {Object} hooks
20
+ * @param {Vue} vm
21
+ */
22
+
23
+ function Transition (el, id, hooks, vm) {
24
+ this.el = el
25
+ this.enterClass = id + '-enter'
26
+ this.leaveClass = id + '-leave'
27
+ this.hooks = hooks
28
+ this.vm = vm
29
+ // async state
30
+ this.pendingCssEvent =
31
+ this.pendingCssCb =
32
+ this.cancel =
33
+ this.pendingJsCb =
34
+ this.op =
35
+ this.cb = null
36
+ this.typeCache = {}
37
+ // bind
38
+ var self = this
39
+ ;['enterNextTick', 'enterDone', 'leaveNextTick', 'leaveDone']
40
+ .forEach(function (m) {
41
+ self[m] = _.bind(self[m], self)
42
+ })
43
+ }
44
+
45
+ var p = Transition.prototype
46
+
47
+ /**
48
+ * Start an entering transition.
49
+ *
50
+ * 1. enter transition triggered
51
+ * 2. call beforeEnter hook
52
+ * 3. add enter class
53
+ * 4. insert/show element
54
+ * 5. call enter hook (with possible explicit js callback)
55
+ * 6. reflow
56
+ * 7. based on transition type:
57
+ * - transition:
58
+ * remove class now, wait for transitionend,
59
+ * then done if there's no explicit js callback.
60
+ * - animation:
61
+ * wait for animationend, remove class,
62
+ * then done if there's no explicit js callback.
63
+ * - no css transition:
64
+ * done now if there's no explicit js callback.
65
+ * 8. wait for either done or js callback, then call
66
+ * afterEnter hook.
67
+ *
68
+ * @param {Function} op - insert/show the element
69
+ * @param {Function} [cb]
70
+ */
71
+
72
+ p.enter = function (op, cb) {
73
+ this.cancelPending()
74
+ this.callHook('beforeEnter')
75
+ this.cb = cb
76
+ addClass(this.el, this.enterClass)
77
+ op()
78
+ this.callHookWithCb('enter')
79
+ this.cancel = this.hooks && this.hooks.enterCancelled
80
+ queue.push(this.enterNextTick)
81
+ }
82
+
83
+ /**
84
+ * The "nextTick" phase of an entering transition, which is
85
+ * to be pushed into a queue and executed after a reflow so
86
+ * that removing the class can trigger a CSS transition.
87
+ */
88
+
89
+ p.enterNextTick = function () {
90
+ var type = this.getCssTransitionType(this.enterClass)
91
+ var enterDone = this.enterDone
92
+ if (type === TYPE_TRANSITION) {
93
+ // trigger transition by removing enter class now
94
+ removeClass(this.el, this.enterClass)
95
+ this.setupCssCb(transitionEndEvent, enterDone)
96
+ } else if (type === TYPE_ANIMATION) {
97
+ this.setupCssCb(animationEndEvent, enterDone)
98
+ } else if (!this.pendingJsCb) {
99
+ enterDone()
100
+ }
101
+ }
102
+
103
+ /**
104
+ * The "cleanup" phase of an entering transition.
105
+ */
106
+
107
+ p.enterDone = function () {
108
+ this.cancel = this.pendingJsCb = null
109
+ removeClass(this.el, this.enterClass)
110
+ this.callHook('afterEnter')
111
+ if (this.cb) this.cb()
112
+ }
113
+
114
+ /**
115
+ * Start a leaving transition.
116
+ *
117
+ * 1. leave transition triggered.
118
+ * 2. call beforeLeave hook
119
+ * 3. add leave class (trigger css transition)
120
+ * 4. call leave hook (with possible explicit js callback)
121
+ * 5. reflow if no explicit js callback is provided
122
+ * 6. based on transition type:
123
+ * - transition or animation:
124
+ * wait for end event, remove class, then done if
125
+ * there's no explicit js callback.
126
+ * - no css transition:
127
+ * done if there's no explicit js callback.
128
+ * 7. wait for either done or js callback, then call
129
+ * afterLeave hook.
130
+ *
131
+ * @param {Function} op - remove/hide the element
132
+ * @param {Function} [cb]
133
+ */
134
+
135
+ p.leave = function (op, cb) {
136
+ this.cancelPending()
137
+ this.callHook('beforeLeave')
138
+ this.op = op
139
+ this.cb = cb
140
+ addClass(this.el, this.leaveClass)
141
+ this.callHookWithCb('leave')
142
+ this.cancel = this.hooks && this.hooks.leaveCancelled
143
+ // only need to do leaveNextTick if there's no explicit
144
+ // js callback
145
+ if (!this.pendingJsCb) {
146
+ queue.push(this.leaveNextTick)
147
+ }
148
+ }
149
+
150
+ /**
151
+ * The "nextTick" phase of a leaving transition.
152
+ */
153
+
154
+ p.leaveNextTick = function () {
155
+ var type = this.getCssTransitionType(this.leaveClass)
156
+ if (type) {
157
+ var event = type === TYPE_TRANSITION
158
+ ? transitionEndEvent
159
+ : animationEndEvent
160
+ this.setupCssCb(event, this.leaveDone)
161
+ } else {
162
+ this.leaveDone()
163
+ }
164
+ }
165
+
166
+ /**
167
+ * The "cleanup" phase of a leaving transition.
168
+ */
169
+
170
+ p.leaveDone = function () {
171
+ this.cancel = this.pendingJsCb = null
172
+ this.op()
173
+ removeClass(this.el, this.leaveClass)
174
+ this.callHook('afterLeave')
175
+ if (this.cb) this.cb()
176
+ }
177
+
178
+ /**
179
+ * Cancel any pending callbacks from a previously running
180
+ * but not finished transition.
181
+ */
182
+
183
+ p.cancelPending = function () {
184
+ this.op = this.cb = null
185
+ var hasPending = false
186
+ if (this.pendingCssCb) {
187
+ hasPending = true
188
+ _.off(this.el, this.pendingCssEvent, this.pendingCssCb)
189
+ this.pendingCssEvent = this.pendingCssCb = null
190
+ }
191
+ if (this.pendingJsCb) {
192
+ hasPending = true
193
+ this.pendingJsCb.cancel()
194
+ this.pendingJsCb = null
195
+ }
196
+ if (hasPending) {
197
+ removeClass(this.el, this.enterClass)
198
+ removeClass(this.el, this.leaveClass)
199
+ }
200
+ if (this.cancel) {
201
+ this.cancel.call(this.vm, this.el)
202
+ this.cancel = null
203
+ }
204
+ }
205
+
206
+ /**
207
+ * Call a user-provided synchronous hook function.
208
+ *
209
+ * @param {String} type
210
+ */
211
+
212
+ p.callHook = function (type) {
213
+ if (this.hooks && this.hooks[type]) {
214
+ this.hooks[type].call(this.vm, this.el)
215
+ }
216
+ }
217
+
218
+ /**
219
+ * Call a user-provided, potentially-async hook function.
220
+ * We check for the length of arguments to see if the hook
221
+ * expects a `done` callback. If true, the transition's end
222
+ * will be determined by when the user calls that callback;
223
+ * otherwise, the end is determined by the CSS transition or
224
+ * animation.
225
+ *
226
+ * @param {String} type
227
+ */
228
+
229
+ p.callHookWithCb = function (type) {
230
+ var hook = this.hooks && this.hooks[type]
231
+ if (hook) {
232
+ if (hook.length > 1) {
233
+ this.pendingJsCb = _.cancellable(this[type + 'Done'])
234
+ }
235
+ hook.call(this.vm, this.el, this.pendingJsCb)
236
+ }
237
+ }
238
+
239
+ /**
240
+ * Get an element's transition type based on the
241
+ * calculated styles.
242
+ *
243
+ * @param {String} className
244
+ * @return {Number}
245
+ */
246
+
247
+ p.getCssTransitionType = function (className) {
248
+ /* istanbul ignore if */
249
+ if (
250
+ !transitionEndEvent ||
251
+ // skip CSS transitions if page is not visible -
252
+ // this solves the issue of transitionend events not
253
+ // firing until the page is visible again.
254
+ // pageVisibility API is supported in IE10+, same as
255
+ // CSS transitions.
256
+ document.hidden ||
257
+ // explicit js-only transition
258
+ (this.hooks && this.hooks.css === false)
259
+ ) {
260
+ return
261
+ }
262
+ var type = this.typeCache[className]
263
+ if (type) return type
264
+ var inlineStyles = this.el.style
265
+ var computedStyles = window.getComputedStyle(this.el)
266
+ var transDuration =
267
+ inlineStyles[transDurationProp] ||
268
+ computedStyles[transDurationProp]
269
+ if (transDuration && transDuration !== '0s') {
270
+ type = TYPE_TRANSITION
271
+ } else {
272
+ var animDuration =
273
+ inlineStyles[animDurationProp] ||
274
+ computedStyles[animDurationProp]
275
+ if (animDuration && animDuration !== '0s') {
276
+ type = TYPE_ANIMATION
277
+ }
278
+ }
279
+ if (type) {
280
+ this.typeCache[className] = type
281
+ }
282
+ return type
283
+ }
284
+
285
+ /**
286
+ * Setup a CSS transitionend/animationend callback.
287
+ *
288
+ * @param {String} event
289
+ * @param {Function} cb
290
+ */
291
+
292
+ p.setupCssCb = function (event, cb) {
293
+ this.pendingCssEvent = event
294
+ var self = this
295
+ var el = this.el
296
+ var onEnd = this.pendingCssCb = function (e) {
297
+ if (e.target === el) {
298
+ _.off(el, event, onEnd)
299
+ self.pendingCssEvent = self.pendingCssCb = null
300
+ if (!self.pendingJsCb && cb) {
301
+ cb()
302
+ }
303
+ }
304
+ }
305
+ _.on(el, event, onEnd)
306
+ }
307
+
308
+ module.exports = Transition