statixite 1.0.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 (462) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +145 -0
  4. data/Rakefile +26 -0
  5. data/app/assets/images/statixite/STATIXITE-logo.png +0 -0
  6. data/app/assets/images/statixite/favicon.ico +0 -0
  7. data/app/assets/images/statixite/jekyll.png +0 -0
  8. data/app/assets/images/statixite/md-editor.png +0 -0
  9. data/app/assets/images/statixite/ring-alt.gif +0 -0
  10. data/app/assets/javascripts/controllers/statixite/deployments_create.js +13 -0
  11. data/app/assets/javascripts/controllers/statixite/deployments_index.js +13 -0
  12. data/app/assets/javascripts/controllers/statixite/sites_create.js +27 -0
  13. data/app/assets/javascripts/controllers/statixite/sites_new.js +27 -0
  14. data/app/assets/javascripts/controllers/statixite/templates_edit.js +208 -0
  15. data/app/assets/javascripts/statixite/application.js +8 -0
  16. data/app/assets/javascripts/statixite/array-helpers.js +13 -0
  17. data/app/assets/javascripts/statixite/editor.js +244 -0
  18. data/app/assets/javascripts/statixite/loader.js +14 -0
  19. data/app/assets/javascripts/statixite/notify-defaults.js +5 -0
  20. data/app/assets/stylesheets/statixite/application.less +271 -0
  21. data/app/assets/stylesheets/statixite/bootstrap-glyphicons.less +305 -0
  22. data/app/assets/stylesheets/statixite/bootstrap.less +58 -0
  23. data/app/assets/stylesheets/statixite/bootstrap_and_overrides.less +2 -0
  24. data/app/assets/stylesheets/statixite/landing-page.less +156 -0
  25. data/app/controllers/statixite/application_controller.rb +22 -0
  26. data/app/controllers/statixite/deployments_controller.rb +61 -0
  27. data/app/controllers/statixite/media_controller.rb +61 -0
  28. data/app/controllers/statixite/posts_controller.rb +68 -0
  29. data/app/controllers/statixite/sites_controller.rb +141 -0
  30. data/app/controllers/statixite/templates_controller.rb +233 -0
  31. data/app/helpers/statixite/application_helper.rb +63 -0
  32. data/app/models/statixite/deployment.rb +5 -0
  33. data/app/models/statixite/media.rb +7 -0
  34. data/app/models/statixite/post.rb +76 -0
  35. data/app/models/statixite/site.rb +76 -0
  36. data/app/services/statixite/deployment_service.rb +73 -0
  37. data/app/services/statixite/git_service.rb +102 -0
  38. data/app/services/statixite/site_deactivation_service.rb +52 -0
  39. data/app/services/statixite/site_operation_service.rb +251 -0
  40. data/app/uploaders/statixite/file_uploader.rb +14 -0
  41. data/app/validators/statixite/jekyll_template_validator.rb +16 -0
  42. data/app/validators/statixite/liquid_validator.rb +11 -0
  43. data/app/views/layouts/statixite/_dash_nav.html.haml +20 -0
  44. data/app/views/layouts/statixite/_flash.html.haml +13 -0
  45. data/app/views/layouts/statixite/_head.html.haml +12 -0
  46. data/app/views/layouts/statixite/_header.html.haml +30 -0
  47. data/app/views/layouts/statixite/_site_sub_items.html.haml +38 -0
  48. data/app/views/layouts/statixite/dashboard.html.haml +27 -0
  49. data/app/views/statixite/deployments/_modal.html.haml +18 -0
  50. data/app/views/statixite/deployments/index.html.haml +39 -0
  51. data/app/views/statixite/kaminari/_first_page.html.haml +2 -0
  52. data/app/views/statixite/kaminari/_gap.html.haml +2 -0
  53. data/app/views/statixite/kaminari/_last_page.html.haml +2 -0
  54. data/app/views/statixite/kaminari/_next_page.html.haml +2 -0
  55. data/app/views/statixite/kaminari/_page.html.haml +6 -0
  56. data/app/views/statixite/kaminari/_paginator.html.haml +11 -0
  57. data/app/views/statixite/kaminari/_prev_page.html.haml +2 -0
  58. data/app/views/statixite/media/_index.html.haml +13 -0
  59. data/app/views/statixite/media/_paginate.html.haml +1 -0
  60. data/app/views/statixite/media/index.html.haml +39 -0
  61. data/app/views/statixite/media/index.js.haml +2 -0
  62. data/app/views/statixite/posts/_form.html.haml +65 -0
  63. data/app/views/statixite/posts/_image_modal.html.haml +21 -0
  64. data/app/views/statixite/posts/_modals.html.haml +111 -0
  65. data/app/views/statixite/posts/_posts.html.haml +15 -0
  66. data/app/views/statixite/posts/edit.html.haml +6 -0
  67. data/app/views/statixite/posts/index.html.haml +4 -0
  68. data/app/views/statixite/posts/index.js.haml +1 -0
  69. data/app/views/statixite/posts/new.html.haml +5 -0
  70. data/app/views/statixite/sites/_sites.html.haml +27 -0
  71. data/app/views/statixite/sites/_templates.html.haml +26 -0
  72. data/app/views/statixite/sites/build_and_preview.html.haml +24 -0
  73. data/app/views/statixite/sites/index.html.haml +4 -0
  74. data/app/views/statixite/sites/index.js.haml +1 -0
  75. data/app/views/statixite/sites/new.html.haml +45 -0
  76. data/app/views/statixite/sites/settings.html.haml +77 -0
  77. data/app/views/statixite/templates/edit.html.haml +93 -0
  78. data/app/views/statixite/templates/upload_files.js.haml +2 -0
  79. data/config/routes.rb +24 -0
  80. data/db/migrate/20150525171543_create_statixite_sites.rb +15 -0
  81. data/db/migrate/20150530041055_create_statixite_posts.rb +14 -0
  82. data/db/migrate/20150610024047_create_statixite_deployments.rb +11 -0
  83. data/db/migrate/20151013131224_create_statixite_media.rb +10 -0
  84. data/lib/assets/templates.yaml +734 -0
  85. data/lib/generators/statixite/statixite_generator.rb +49 -0
  86. data/lib/statixite.rb +14 -0
  87. data/lib/statixite/cloud_sync.rb +104 -0
  88. data/lib/statixite/engine.rb +49 -0
  89. data/lib/statixite/version.rb +3 -0
  90. data/lib/tasks/statixite_tasks.rake +4 -0
  91. data/vendor/assets/bower_components/bootstrap/CHANGELOG.md +5 -0
  92. data/vendor/assets/bower_components/bootstrap/Gruntfile.js +533 -0
  93. data/vendor/assets/bower_components/bootstrap/LICENSE +21 -0
  94. data/vendor/assets/bower_components/bootstrap/README.md +139 -0
  95. data/vendor/assets/bower_components/bootstrap/bower.json +34 -0
  96. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css +587 -0
  97. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -0
  98. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +6 -0
  99. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css.map +1 -0
  100. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css +6760 -0
  101. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -0
  102. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css +6 -0
  103. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css.map +1 -0
  104. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  105. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  106. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  107. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  108. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  109. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.js +2363 -0
  110. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.min.js +7 -0
  111. data/vendor/assets/bower_components/bootstrap/dist/js/npm.js +13 -0
  112. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  113. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  114. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  115. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  116. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  117. data/vendor/assets/bower_components/bootstrap/grunt/bs-commonjs-generator.js +30 -0
  118. data/vendor/assets/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
  119. data/vendor/assets/bower_components/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
  120. data/vendor/assets/bower_components/bootstrap/grunt/bs-raw-files-generator.js +44 -0
  121. data/vendor/assets/bower_components/bootstrap/grunt/configBridge.json +46 -0
  122. data/vendor/assets/bower_components/bootstrap/grunt/sauce_browsers.yml +82 -0
  123. data/vendor/assets/bower_components/bootstrap/js/affix.js +162 -0
  124. data/vendor/assets/bower_components/bootstrap/js/alert.js +94 -0
  125. data/vendor/assets/bower_components/bootstrap/js/button.js +120 -0
  126. data/vendor/assets/bower_components/bootstrap/js/carousel.js +237 -0
  127. data/vendor/assets/bower_components/bootstrap/js/collapse.js +211 -0
  128. data/vendor/assets/bower_components/bootstrap/js/dropdown.js +165 -0
  129. data/vendor/assets/bower_components/bootstrap/js/modal.js +337 -0
  130. data/vendor/assets/bower_components/bootstrap/js/popover.js +108 -0
  131. data/vendor/assets/bower_components/bootstrap/js/scrollspy.js +172 -0
  132. data/vendor/assets/bower_components/bootstrap/js/tab.js +155 -0
  133. data/vendor/assets/bower_components/bootstrap/js/tooltip.js +514 -0
  134. data/vendor/assets/bower_components/bootstrap/js/transition.js +59 -0
  135. data/vendor/assets/bower_components/bootstrap/less/alerts.less +73 -0
  136. data/vendor/assets/bower_components/bootstrap/less/badges.less +66 -0
  137. data/vendor/assets/bower_components/bootstrap/less/bootstrap.less +56 -0
  138. data/vendor/assets/bower_components/bootstrap/less/breadcrumbs.less +26 -0
  139. data/vendor/assets/bower_components/bootstrap/less/button-groups.less +244 -0
  140. data/vendor/assets/bower_components/bootstrap/less/buttons.less +166 -0
  141. data/vendor/assets/bower_components/bootstrap/less/carousel.less +270 -0
  142. data/vendor/assets/bower_components/bootstrap/less/close.less +34 -0
  143. data/vendor/assets/bower_components/bootstrap/less/code.less +69 -0
  144. data/vendor/assets/bower_components/bootstrap/less/component-animations.less +33 -0
  145. data/vendor/assets/bower_components/bootstrap/less/dropdowns.less +216 -0
  146. data/vendor/assets/bower_components/bootstrap/less/forms.less +613 -0
  147. data/vendor/assets/bower_components/bootstrap/less/glyphicons.less +305 -0
  148. data/vendor/assets/bower_components/bootstrap/less/grid.less +84 -0
  149. data/vendor/assets/bower_components/bootstrap/less/input-groups.less +171 -0
  150. data/vendor/assets/bower_components/bootstrap/less/jumbotron.less +54 -0
  151. data/vendor/assets/bower_components/bootstrap/less/labels.less +64 -0
  152. data/vendor/assets/bower_components/bootstrap/less/list-group.less +130 -0
  153. data/vendor/assets/bower_components/bootstrap/less/media.less +66 -0
  154. data/vendor/assets/bower_components/bootstrap/less/mixins.less +40 -0
  155. data/vendor/assets/bower_components/bootstrap/less/mixins/alerts.less +14 -0
  156. data/vendor/assets/bower_components/bootstrap/less/mixins/background-variant.less +9 -0
  157. data/vendor/assets/bower_components/bootstrap/less/mixins/border-radius.less +18 -0
  158. data/vendor/assets/bower_components/bootstrap/less/mixins/buttons.less +65 -0
  159. data/vendor/assets/bower_components/bootstrap/less/mixins/center-block.less +7 -0
  160. data/vendor/assets/bower_components/bootstrap/less/mixins/clearfix.less +22 -0
  161. data/vendor/assets/bower_components/bootstrap/less/mixins/forms.less +85 -0
  162. data/vendor/assets/bower_components/bootstrap/less/mixins/gradients.less +59 -0
  163. data/vendor/assets/bower_components/bootstrap/less/mixins/grid-framework.less +91 -0
  164. data/vendor/assets/bower_components/bootstrap/less/mixins/grid.less +122 -0
  165. data/vendor/assets/bower_components/bootstrap/less/mixins/hide-text.less +21 -0
  166. data/vendor/assets/bower_components/bootstrap/less/mixins/image.less +33 -0
  167. data/vendor/assets/bower_components/bootstrap/less/mixins/labels.less +12 -0
  168. data/vendor/assets/bower_components/bootstrap/less/mixins/list-group.less +30 -0
  169. data/vendor/assets/bower_components/bootstrap/less/mixins/nav-divider.less +10 -0
  170. data/vendor/assets/bower_components/bootstrap/less/mixins/nav-vertical-align.less +9 -0
  171. data/vendor/assets/bower_components/bootstrap/less/mixins/opacity.less +8 -0
  172. data/vendor/assets/bower_components/bootstrap/less/mixins/pagination.less +24 -0
  173. data/vendor/assets/bower_components/bootstrap/less/mixins/panels.less +24 -0
  174. data/vendor/assets/bower_components/bootstrap/less/mixins/progress-bar.less +10 -0
  175. data/vendor/assets/bower_components/bootstrap/less/mixins/reset-filter.less +8 -0
  176. data/vendor/assets/bower_components/bootstrap/less/mixins/reset-text.less +18 -0
  177. data/vendor/assets/bower_components/bootstrap/less/mixins/resize.less +6 -0
  178. data/vendor/assets/bower_components/bootstrap/less/mixins/responsive-visibility.less +15 -0
  179. data/vendor/assets/bower_components/bootstrap/less/mixins/size.less +10 -0
  180. data/vendor/assets/bower_components/bootstrap/less/mixins/tab-focus.less +9 -0
  181. data/vendor/assets/bower_components/bootstrap/less/mixins/table-row.less +28 -0
  182. data/vendor/assets/bower_components/bootstrap/less/mixins/text-emphasis.less +9 -0
  183. data/vendor/assets/bower_components/bootstrap/less/mixins/text-overflow.less +8 -0
  184. data/vendor/assets/bower_components/bootstrap/less/mixins/vendor-prefixes.less +227 -0
  185. data/vendor/assets/bower_components/bootstrap/less/modals.less +150 -0
  186. data/vendor/assets/bower_components/bootstrap/less/navbar.less +660 -0
  187. data/vendor/assets/bower_components/bootstrap/less/navs.less +242 -0
  188. data/vendor/assets/bower_components/bootstrap/less/normalize.less +424 -0
  189. data/vendor/assets/bower_components/bootstrap/less/pager.less +54 -0
  190. data/vendor/assets/bower_components/bootstrap/less/pagination.less +89 -0
  191. data/vendor/assets/bower_components/bootstrap/less/panels.less +271 -0
  192. data/vendor/assets/bower_components/bootstrap/less/popovers.less +131 -0
  193. data/vendor/assets/bower_components/bootstrap/less/print.less +101 -0
  194. data/vendor/assets/bower_components/bootstrap/less/progress-bars.less +87 -0
  195. data/vendor/assets/bower_components/bootstrap/less/responsive-embed.less +35 -0
  196. data/vendor/assets/bower_components/bootstrap/less/responsive-utilities.less +194 -0
  197. data/vendor/assets/bower_components/bootstrap/less/scaffolding.less +161 -0
  198. data/vendor/assets/bower_components/bootstrap/less/tables.less +234 -0
  199. data/vendor/assets/bower_components/bootstrap/less/theme.less +291 -0
  200. data/vendor/assets/bower_components/bootstrap/less/thumbnails.less +36 -0
  201. data/vendor/assets/bower_components/bootstrap/less/tooltip.less +101 -0
  202. data/vendor/assets/bower_components/bootstrap/less/type.less +302 -0
  203. data/vendor/assets/bower_components/bootstrap/less/utilities.less +55 -0
  204. data/vendor/assets/bower_components/bootstrap/less/variables.less +869 -0
  205. data/vendor/assets/bower_components/bootstrap/less/wells.less +29 -0
  206. data/vendor/assets/bower_components/bootstrap/nuget/MyGet.ps1 +8 -0
  207. data/vendor/assets/bower_components/bootstrap/nuget/bootstrap.less.nuspec +28 -0
  208. data/vendor/assets/bower_components/bootstrap/nuget/bootstrap.nuspec +28 -0
  209. data/vendor/assets/bower_components/bootstrap/package.js +32 -0
  210. data/vendor/assets/bower_components/bootstrap/package.json +87 -0
  211. data/vendor/assets/bower_components/jquery/AUTHORS.txt +275 -0
  212. data/vendor/assets/bower_components/jquery/LICENSE.txt +36 -0
  213. data/vendor/assets/bower_components/jquery/README.md +5 -0
  214. data/vendor/assets/bower_components/jquery/bower.json +14 -0
  215. data/vendor/assets/bower_components/jquery/dist/jquery.js +9831 -0
  216. data/vendor/assets/bower_components/jquery/dist/jquery.min.js +4 -0
  217. data/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -0
  218. data/vendor/assets/bower_components/jquery/src/ajax.js +845 -0
  219. data/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +100 -0
  220. data/vendor/assets/bower_components/jquery/src/ajax/load.js +83 -0
  221. data/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  222. data/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +27 -0
  223. data/vendor/assets/bower_components/jquery/src/ajax/script.js +68 -0
  224. data/vendor/assets/bower_components/jquery/src/ajax/var/location.js +3 -0
  225. data/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  226. data/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  227. data/vendor/assets/bower_components/jquery/src/ajax/xhr.js +167 -0
  228. data/vendor/assets/bower_components/jquery/src/attributes.js +11 -0
  229. data/vendor/assets/bower_components/jquery/src/attributes/attr.js +142 -0
  230. data/vendor/assets/bower_components/jquery/src/attributes/classes.js +177 -0
  231. data/vendor/assets/bower_components/jquery/src/attributes/prop.js +109 -0
  232. data/vendor/assets/bower_components/jquery/src/attributes/support.js +36 -0
  233. data/vendor/assets/bower_components/jquery/src/attributes/val.js +170 -0
  234. data/vendor/assets/bower_components/jquery/src/callbacks.js +232 -0
  235. data/vendor/assets/bower_components/jquery/src/core.js +489 -0
  236. data/vendor/assets/bower_components/jquery/src/core/access.js +65 -0
  237. data/vendor/assets/bower_components/jquery/src/core/init.js +134 -0
  238. data/vendor/assets/bower_components/jquery/src/core/parseHTML.js +49 -0
  239. data/vendor/assets/bower_components/jquery/src/core/ready.js +103 -0
  240. data/vendor/assets/bower_components/jquery/src/core/support.js +18 -0
  241. data/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +5 -0
  242. data/vendor/assets/bower_components/jquery/src/css.js +515 -0
  243. data/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +24 -0
  244. data/vendor/assets/bower_components/jquery/src/css/adjustCSS.js +65 -0
  245. data/vendor/assets/bower_components/jquery/src/css/curCSS.js +57 -0
  246. data/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +72 -0
  247. data/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +18 -0
  248. data/vendor/assets/bower_components/jquery/src/css/showHide.js +48 -0
  249. data/vendor/assets/bower_components/jquery/src/css/support.js +121 -0
  250. data/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  251. data/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +15 -0
  252. data/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +16 -0
  253. data/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +3 -0
  254. data/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  255. data/vendor/assets/bower_components/jquery/src/css/var/swap.js +24 -0
  256. data/vendor/assets/bower_components/jquery/src/data.js +187 -0
  257. data/vendor/assets/bower_components/jquery/src/data/Data.js +200 -0
  258. data/vendor/assets/bower_components/jquery/src/data/accepts.js +20 -0
  259. data/vendor/assets/bower_components/jquery/src/data/support.js +23 -0
  260. data/vendor/assets/bower_components/jquery/src/data/var/acceptData.js +18 -0
  261. data/vendor/assets/bower_components/jquery/src/data/var/dataPriv.js +5 -0
  262. data/vendor/assets/bower_components/jquery/src/data/var/dataUser.js +5 -0
  263. data/vendor/assets/bower_components/jquery/src/deferred.js +158 -0
  264. data/vendor/assets/bower_components/jquery/src/deprecated.js +32 -0
  265. data/vendor/assets/bower_components/jquery/src/dimensions.js +54 -0
  266. data/vendor/assets/bower_components/jquery/src/effects.js +629 -0
  267. data/vendor/assets/bower_components/jquery/src/effects/Tween.js +121 -0
  268. data/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  269. data/vendor/assets/bower_components/jquery/src/effects/support.js +58 -0
  270. data/vendor/assets/bower_components/jquery/src/event.js +710 -0
  271. data/vendor/assets/bower_components/jquery/src/event/ajax.js +20 -0
  272. data/vendor/assets/bower_components/jquery/src/event/alias.js +27 -0
  273. data/vendor/assets/bower_components/jquery/src/event/focusin.js +53 -0
  274. data/vendor/assets/bower_components/jquery/src/event/support.js +9 -0
  275. data/vendor/assets/bower_components/jquery/src/event/trigger.js +199 -0
  276. data/vendor/assets/bower_components/jquery/src/exports/amd.js +24 -0
  277. data/vendor/assets/bower_components/jquery/src/exports/global.js +26 -0
  278. data/vendor/assets/bower_components/jquery/src/intro.js +44 -0
  279. data/vendor/assets/bower_components/jquery/src/jquery.js +37 -0
  280. data/vendor/assets/bower_components/jquery/src/manipulation.js +481 -0
  281. data/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +20 -0
  282. data/vendor/assets/bower_components/jquery/src/manipulation/buildFragment.js +102 -0
  283. data/vendor/assets/bower_components/jquery/src/manipulation/createSafeFragment.js +20 -0
  284. data/vendor/assets/bower_components/jquery/src/manipulation/getAll.js +21 -0
  285. data/vendor/assets/bower_components/jquery/src/manipulation/setGlobalEval.js +20 -0
  286. data/vendor/assets/bower_components/jquery/src/manipulation/support.js +33 -0
  287. data/vendor/assets/bower_components/jquery/src/manipulation/var/nodeNames.js +5 -0
  288. data/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  289. data/vendor/assets/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js +3 -0
  290. data/vendor/assets/bower_components/jquery/src/manipulation/var/rscriptType.js +3 -0
  291. data/vendor/assets/bower_components/jquery/src/manipulation/var/rtagName.js +3 -0
  292. data/vendor/assets/bower_components/jquery/src/manipulation/wrapMap.js +27 -0
  293. data/vendor/assets/bower_components/jquery/src/offset.js +221 -0
  294. data/vendor/assets/bower_components/jquery/src/outro.js +2 -0
  295. data/vendor/assets/bower_components/jquery/src/queue.js +143 -0
  296. data/vendor/assets/bower_components/jquery/src/queue/delay.js +22 -0
  297. data/vendor/assets/bower_components/jquery/src/selector-native.js +211 -0
  298. data/vendor/assets/bower_components/jquery/src/selector-sizzle.js +14 -0
  299. data/vendor/assets/bower_components/jquery/src/selector.js +1 -0
  300. data/vendor/assets/bower_components/jquery/src/serialize.js +125 -0
  301. data/vendor/assets/bower_components/jquery/src/support.js +63 -0
  302. data/vendor/assets/bower_components/jquery/src/traversing.js +175 -0
  303. data/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +100 -0
  304. data/vendor/assets/bower_components/jquery/src/traversing/var/dir.js +20 -0
  305. data/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  306. data/vendor/assets/bower_components/jquery/src/traversing/var/siblings.js +15 -0
  307. data/vendor/assets/bower_components/jquery/src/var/arr.js +3 -0
  308. data/vendor/assets/bower_components/jquery/src/var/class2type.js +5 -0
  309. data/vendor/assets/bower_components/jquery/src/var/concat.js +5 -0
  310. data/vendor/assets/bower_components/jquery/src/var/deletedIds.js +3 -0
  311. data/vendor/assets/bower_components/jquery/src/var/document.js +3 -0
  312. data/vendor/assets/bower_components/jquery/src/var/documentElement.js +5 -0
  313. data/vendor/assets/bower_components/jquery/src/var/hasOwn.js +5 -0
  314. data/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -0
  315. data/vendor/assets/bower_components/jquery/src/var/pnum.js +3 -0
  316. data/vendor/assets/bower_components/jquery/src/var/push.js +5 -0
  317. data/vendor/assets/bower_components/jquery/src/var/rcssNum.js +7 -0
  318. data/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +3 -0
  319. data/vendor/assets/bower_components/jquery/src/var/slice.js +5 -0
  320. data/vendor/assets/bower_components/jquery/src/var/support.js +5 -0
  321. data/vendor/assets/bower_components/jquery/src/var/toString.js +5 -0
  322. data/vendor/assets/bower_components/jquery/src/wrap.js +79 -0
  323. data/vendor/assets/bower_components/jsoneditor/CONTRIBUTING.md +15 -0
  324. data/vendor/assets/bower_components/jsoneditor/HISTORY.md +457 -0
  325. data/vendor/assets/bower_components/jsoneditor/LICENSE +176 -0
  326. data/vendor/assets/bower_components/jsoneditor/NOTICE +17 -0
  327. data/vendor/assets/bower_components/jsoneditor/README.md +155 -0
  328. data/vendor/assets/bower_components/jsoneditor/bower.json +32 -0
  329. data/vendor/assets/bower_components/jsoneditor/dist/img/jsoneditor-icons.svg +893 -0
  330. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor-minimalist.js +9418 -0
  331. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor-minimalist.map +1 -0
  332. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor-minimalist.min.js +35 -0
  333. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor.css.less +879 -0
  334. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor.js +35095 -0
  335. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor.map +1 -0
  336. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor.min.css +1 -0
  337. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor.min.js +48 -0
  338. data/vendor/assets/bower_components/jsoneditor/dist/which files do I need.md +41 -0
  339. data/vendor/assets/bower_components/jsoneditor/docs/api.md +286 -0
  340. data/vendor/assets/bower_components/jsoneditor/docs/shortcut_keys.md +38 -0
  341. data/vendor/assets/bower_components/jsoneditor/docs/usage.md +117 -0
  342. data/vendor/assets/bower_components/jsoneditor/examples/01_basic_usage.html +49 -0
  343. data/vendor/assets/bower_components/jsoneditor/examples/02_viewer.html +44 -0
  344. data/vendor/assets/bower_components/jsoneditor/examples/03_switch_mode.html +66 -0
  345. data/vendor/assets/bower_components/jsoneditor/examples/04_load_and_save.html +62 -0
  346. data/vendor/assets/bower_components/jsoneditor/examples/05_custom_fields_editable.html +63 -0
  347. data/vendor/assets/bower_components/jsoneditor/examples/06_custom_styling.html +51 -0
  348. data/vendor/assets/bower_components/jsoneditor/examples/07_json_schema_validation.html +71 -0
  349. data/vendor/assets/bower_components/jsoneditor/examples/css/darktheme.css +76 -0
  350. data/vendor/assets/bower_components/jsoneditor/examples/requirejs_demo/requirejs_demo.html +21 -0
  351. data/vendor/assets/bower_components/jsoneditor/examples/requirejs_demo/scripts/main.js +25 -0
  352. data/vendor/assets/bower_components/jsoneditor/examples/requirejs_demo/scripts/require.js +36 -0
  353. data/vendor/assets/bower_components/jsoneditor/index.js +1 -0
  354. data/vendor/assets/bower_components/jsoneditor/package.json +41 -0
  355. data/vendor/assets/bower_components/jsoneditor/src/css/contextmenu.css +233 -0
  356. data/vendor/assets/bower_components/jsoneditor/src/css/img/description.txt +14 -0
  357. data/vendor/assets/bower_components/jsoneditor/src/css/img/jsoneditor-icons.svg +893 -0
  358. data/vendor/assets/bower_components/jsoneditor/src/css/jsoneditor.css +433 -0
  359. data/vendor/assets/bower_components/jsoneditor/src/css/menu.css +110 -0
  360. data/vendor/assets/bower_components/jsoneditor/src/css/searchbox.css +75 -0
  361. data/vendor/assets/bower_components/jsoneditor/src/docs/which files do I need.md +41 -0
  362. data/vendor/assets/bower_components/jsoneditor/src/js/ContextMenu.js +455 -0
  363. data/vendor/assets/bower_components/jsoneditor/src/js/Highlighter.js +84 -0
  364. data/vendor/assets/bower_components/jsoneditor/src/js/History.js +252 -0
  365. data/vendor/assets/bower_components/jsoneditor/src/js/JSONEditor.js +371 -0
  366. data/vendor/assets/bower_components/jsoneditor/src/js/Node.js +3400 -0
  367. data/vendor/assets/bower_components/jsoneditor/src/js/SearchBox.js +295 -0
  368. data/vendor/assets/bower_components/jsoneditor/src/js/ace/index.js +9 -0
  369. data/vendor/assets/bower_components/jsoneditor/src/js/ace/theme-jsoneditor.js +144 -0
  370. data/vendor/assets/bower_components/jsoneditor/src/js/appendNodeFactory.js +226 -0
  371. data/vendor/assets/bower_components/jsoneditor/src/js/assets/jsonlint/README.md +15 -0
  372. data/vendor/assets/bower_components/jsoneditor/src/js/assets/jsonlint/jsonlint.js +418 -0
  373. data/vendor/assets/bower_components/jsoneditor/src/js/header.js +29 -0
  374. data/vendor/assets/bower_components/jsoneditor/src/js/modeswitcher.js +105 -0
  375. data/vendor/assets/bower_components/jsoneditor/src/js/textmode.js +474 -0
  376. data/vendor/assets/bower_components/jsoneditor/src/js/treemode.js +1150 -0
  377. data/vendor/assets/bower_components/jsoneditor/src/js/util.js +765 -0
  378. data/vendor/assets/bower_components/notifyjs/CHANGES.md +7 -0
  379. data/vendor/assets/bower_components/notifyjs/README.md +31 -0
  380. data/vendor/assets/bower_components/notifyjs/bower.json +14 -0
  381. data/vendor/assets/bower_components/notifyjs/dist/notify.js +586 -0
  382. data/vendor/assets/bower_components/notifyjs/dist/styles/metro/notify-metro.css +40 -0
  383. data/vendor/assets/bower_components/notifyjs/dist/styles/metro/notify-metro.js +39 -0
  384. data/vendor/assets/bower_components/notifyjs/examples/classes.html +49 -0
  385. data/vendor/assets/bower_components/notifyjs/examples/images/Mail.png +0 -0
  386. data/vendor/assets/bower_components/notifyjs/examples/inlines.html +111 -0
  387. data/vendor/assets/bower_components/notifyjs/examples/metro.html +37 -0
  388. data/vendor/assets/bower_components/notifyjs/examples/multi-text.html +55 -0
  389. data/vendor/assets/bower_components/notifyjs/examples/position.html +42 -0
  390. data/vendor/assets/bower_components/notifyjs/notify.jquery.json +28 -0
  391. data/vendor/assets/bower_components/notifyjs/package.json +18 -0
  392. data/vendor/assets/bower_components/vue/LICENSE +21 -0
  393. data/vendor/assets/bower_components/vue/bower.json +19 -0
  394. data/vendor/assets/bower_components/vue/dist/vue.js +10198 -0
  395. data/vendor/assets/bower_components/vue/dist/vue.min.js +8 -0
  396. data/vendor/assets/bower_components/vue/src/api/child.js +49 -0
  397. data/vendor/assets/bower_components/vue/src/api/data.js +159 -0
  398. data/vendor/assets/bower_components/vue/src/api/dom.js +226 -0
  399. data/vendor/assets/bower_components/vue/src/api/events.js +174 -0
  400. data/vendor/assets/bower_components/vue/src/api/global.js +129 -0
  401. data/vendor/assets/bower_components/vue/src/api/lifecycle.js +68 -0
  402. data/vendor/assets/bower_components/vue/src/batcher.js +98 -0
  403. data/vendor/assets/bower_components/vue/src/cache.js +112 -0
  404. data/vendor/assets/bower_components/vue/src/compiler/compile-props.js +183 -0
  405. data/vendor/assets/bower_components/vue/src/compiler/compile.js +630 -0
  406. data/vendor/assets/bower_components/vue/src/compiler/index.js +4 -0
  407. data/vendor/assets/bower_components/vue/src/compiler/transclude.js +144 -0
  408. data/vendor/assets/bower_components/vue/src/config.js +124 -0
  409. data/vendor/assets/bower_components/vue/src/directive.js +254 -0
  410. data/vendor/assets/bower_components/vue/src/directives/attr.js +59 -0
  411. data/vendor/assets/bower_components/vue/src/directives/class.js +70 -0
  412. data/vendor/assets/bower_components/vue/src/directives/cloak.js +10 -0
  413. data/vendor/assets/bower_components/vue/src/directives/component.js +344 -0
  414. data/vendor/assets/bower_components/vue/src/directives/el.js +12 -0
  415. data/vendor/assets/bower_components/vue/src/directives/html.js +40 -0
  416. data/vendor/assets/bower_components/vue/src/directives/if.js +125 -0
  417. data/vendor/assets/bower_components/vue/src/directives/index.js +24 -0
  418. data/vendor/assets/bower_components/vue/src/directives/model/checkbox.js +42 -0
  419. data/vendor/assets/bower_components/vue/src/directives/model/index.js +82 -0
  420. data/vendor/assets/bower_components/vue/src/directives/model/radio.js +33 -0
  421. data/vendor/assets/bower_components/vue/src/directives/model/select.js +236 -0
  422. data/vendor/assets/bower_components/vue/src/directives/model/text.js +132 -0
  423. data/vendor/assets/bower_components/vue/src/directives/on.js +59 -0
  424. data/vendor/assets/bower_components/vue/src/directives/prop.js +62 -0
  425. data/vendor/assets/bower_components/vue/src/directives/ref.js +22 -0
  426. data/vendor/assets/bower_components/vue/src/directives/repeat.js +770 -0
  427. data/vendor/assets/bower_components/vue/src/directives/show.js +8 -0
  428. data/vendor/assets/bower_components/vue/src/directives/style.js +110 -0
  429. data/vendor/assets/bower_components/vue/src/directives/text.js +14 -0
  430. data/vendor/assets/bower_components/vue/src/directives/transition.js +26 -0
  431. data/vendor/assets/bower_components/vue/src/element-directives/content.js +111 -0
  432. data/vendor/assets/bower_components/vue/src/element-directives/index.js +2 -0
  433. data/vendor/assets/bower_components/vue/src/element-directives/partial.js +73 -0
  434. data/vendor/assets/bower_components/vue/src/filters/array-filters.js +97 -0
  435. data/vendor/assets/bower_components/vue/src/filters/index.js +146 -0
  436. data/vendor/assets/bower_components/vue/src/instance/compile.js +200 -0
  437. data/vendor/assets/bower_components/vue/src/instance/events.js +139 -0
  438. data/vendor/assets/bower_components/vue/src/instance/init.js +89 -0
  439. data/vendor/assets/bower_components/vue/src/instance/misc.js +93 -0
  440. data/vendor/assets/bower_components/vue/src/instance/scope.js +282 -0
  441. data/vendor/assets/bower_components/vue/src/observer/array.js +98 -0
  442. data/vendor/assets/bower_components/vue/src/observer/dep.js +61 -0
  443. data/vendor/assets/bower_components/vue/src/observer/index.js +234 -0
  444. data/vendor/assets/bower_components/vue/src/observer/object.js +82 -0
  445. data/vendor/assets/bower_components/vue/src/parsers/directive.js +180 -0
  446. data/vendor/assets/bower_components/vue/src/parsers/expression.js +264 -0
  447. data/vendor/assets/bower_components/vue/src/parsers/path.js +348 -0
  448. data/vendor/assets/bower_components/vue/src/parsers/template.js +288 -0
  449. data/vendor/assets/bower_components/vue/src/parsers/text.js +178 -0
  450. data/vendor/assets/bower_components/vue/src/transition/index.js +128 -0
  451. data/vendor/assets/bower_components/vue/src/transition/queue.js +35 -0
  452. data/vendor/assets/bower_components/vue/src/transition/transition.js +357 -0
  453. data/vendor/assets/bower_components/vue/src/util/component.js +124 -0
  454. data/vendor/assets/bower_components/vue/src/util/debug.js +64 -0
  455. data/vendor/assets/bower_components/vue/src/util/dom.js +272 -0
  456. data/vendor/assets/bower_components/vue/src/util/env.js +85 -0
  457. data/vendor/assets/bower_components/vue/src/util/index.js +9 -0
  458. data/vendor/assets/bower_components/vue/src/util/lang.js +310 -0
  459. data/vendor/assets/bower_components/vue/src/util/options.js +357 -0
  460. data/vendor/assets/bower_components/vue/src/vue.js +89 -0
  461. data/vendor/assets/bower_components/vue/src/watcher.js +312 -0
  462. metadata +870 -0
@@ -0,0 +1,129 @@
1
+ var _ = require('../util')
2
+ var config = require('../config')
3
+
4
+ /**
5
+ * Expose useful internals
6
+ */
7
+
8
+ exports.util = _
9
+ exports.config = config
10
+ exports.nextTick = _.nextTick
11
+ exports.compiler = require('../compiler')
12
+
13
+ exports.parsers = {
14
+ path: require('../parsers/path'),
15
+ text: require('../parsers/text'),
16
+ template: require('../parsers/template'),
17
+ directive: require('../parsers/directive'),
18
+ expression: require('../parsers/expression')
19
+ }
20
+
21
+ /**
22
+ * Each instance constructor, including Vue, has a unique
23
+ * cid. This enables us to create wrapped "child
24
+ * constructors" for prototypal inheritance and cache them.
25
+ */
26
+
27
+ exports.cid = 0
28
+ var cid = 1
29
+
30
+ /**
31
+ * Class inheritance
32
+ *
33
+ * @param {Object} extendOptions
34
+ */
35
+
36
+ exports.extend = function (extendOptions) {
37
+ extendOptions = extendOptions || {}
38
+ var Super = this
39
+ var Sub = createClass(
40
+ extendOptions.name ||
41
+ Super.options.name ||
42
+ 'VueComponent'
43
+ )
44
+ Sub.prototype = Object.create(Super.prototype)
45
+ Sub.prototype.constructor = Sub
46
+ Sub.cid = cid++
47
+ Sub.options = _.mergeOptions(
48
+ Super.options,
49
+ extendOptions
50
+ )
51
+ Sub['super'] = Super
52
+ // allow further extension
53
+ Sub.extend = Super.extend
54
+ // create asset registers, so extended classes
55
+ // can have their private assets too.
56
+ config._assetTypes.forEach(function (type) {
57
+ Sub[type] = Super[type]
58
+ })
59
+ return Sub
60
+ }
61
+
62
+ /**
63
+ * A function that returns a sub-class constructor with the
64
+ * given name. This gives us much nicer output when
65
+ * logging instances in the console.
66
+ *
67
+ * @param {String} name
68
+ * @return {Function}
69
+ */
70
+
71
+ function createClass (name) {
72
+ return new Function(
73
+ 'return function ' + _.classify(name) +
74
+ ' (options) { this._init(options) }'
75
+ )()
76
+ }
77
+
78
+ /**
79
+ * Plugin system
80
+ *
81
+ * @param {Object} plugin
82
+ */
83
+
84
+ exports.use = function (plugin) {
85
+ // additional parameters
86
+ var args = _.toArray(arguments, 1)
87
+ args.unshift(this)
88
+ if (typeof plugin.install === 'function') {
89
+ plugin.install.apply(plugin, args)
90
+ } else {
91
+ plugin.apply(null, args)
92
+ }
93
+ return this
94
+ }
95
+
96
+ /**
97
+ * Apply a global mixin by merging it into the default
98
+ * options.
99
+ */
100
+
101
+ exports.mixin = function (mixin) {
102
+ var Vue = _.Vue
103
+ Vue.options = _.mergeOptions(Vue.options, mixin)
104
+ }
105
+
106
+ /**
107
+ * Create asset registration methods with the following
108
+ * signature:
109
+ *
110
+ * @param {String} id
111
+ * @param {*} definition
112
+ */
113
+
114
+ config._assetTypes.forEach(function (type) {
115
+ exports[type] = function (id, definition) {
116
+ if (!definition) {
117
+ return this.options[type + 's'][id]
118
+ } else {
119
+ if (
120
+ type === 'component' &&
121
+ _.isPlainObject(definition)
122
+ ) {
123
+ definition.name = id
124
+ definition = _.Vue.extend(definition)
125
+ }
126
+ this.options[type + 's'][id] = definition
127
+ }
128
+ }
129
+ })
@@ -0,0 +1,68 @@
1
+ var _ = require('../util')
2
+ var compiler = require('../compiler')
3
+
4
+ /**
5
+ * Set instance target element and kick off the compilation
6
+ * process. The passed in `el` can be a selector string, an
7
+ * existing Element, or a DocumentFragment (for block
8
+ * instances).
9
+ *
10
+ * @param {Element|DocumentFragment|string} el
11
+ * @public
12
+ */
13
+
14
+ exports.$mount = function (el) {
15
+ if (this._isCompiled) {
16
+ process.env.NODE_ENV !== 'production' && _.warn(
17
+ '$mount() should be called only once.'
18
+ )
19
+ return
20
+ }
21
+ el = _.query(el)
22
+ if (!el) {
23
+ el = document.createElement('div')
24
+ }
25
+ this._compile(el)
26
+ this._isCompiled = true
27
+ this._callHook('compiled')
28
+ this._initDOMHooks()
29
+ if (_.inDoc(this.$el)) {
30
+ this._callHook('attached')
31
+ ready.call(this)
32
+ } else {
33
+ this.$once('hook:attached', ready)
34
+ }
35
+ return this
36
+ }
37
+
38
+ /**
39
+ * Mark an instance as ready.
40
+ */
41
+
42
+ function ready () {
43
+ this._isAttached = true
44
+ this._isReady = true
45
+ this._callHook('ready')
46
+ }
47
+
48
+ /**
49
+ * Teardown the instance, simply delegate to the internal
50
+ * _destroy.
51
+ */
52
+
53
+ exports.$destroy = function (remove, deferCleanup) {
54
+ this._destroy(remove, deferCleanup)
55
+ }
56
+
57
+ /**
58
+ * Partially compile a piece of DOM and return a
59
+ * decompile function.
60
+ *
61
+ * @param {Element|DocumentFragment} el
62
+ * @param {Vue} [host]
63
+ * @return {Function}
64
+ */
65
+
66
+ exports.$compile = function (el, host) {
67
+ return compiler.compile(el, this.$options, true)(this, el, host)
68
+ }
@@ -0,0 +1,98 @@
1
+ var _ = require('./util')
2
+ var config = require('./config')
3
+
4
+ // we have two separate queues: one for directive updates
5
+ // and one for user watcher registered via $watch().
6
+ // we want to guarantee directive updates to be called
7
+ // before user watchers so that when user watchers are
8
+ // triggered, the DOM would have already been in updated
9
+ // state.
10
+ var queue = []
11
+ var userQueue = []
12
+ var has = {}
13
+ var circular = {}
14
+ var waiting = false
15
+ var internalQueueDepleted = false
16
+
17
+ /**
18
+ * Reset the batcher's state.
19
+ */
20
+
21
+ function resetBatcherState () {
22
+ queue = []
23
+ userQueue = []
24
+ has = {}
25
+ circular = {}
26
+ waiting = internalQueueDepleted = false
27
+ }
28
+
29
+ /**
30
+ * Flush both queues and run the watchers.
31
+ */
32
+
33
+ function flushBatcherQueue () {
34
+ runBatcherQueue(queue)
35
+ internalQueueDepleted = true
36
+ runBatcherQueue(userQueue)
37
+ resetBatcherState()
38
+ }
39
+
40
+ /**
41
+ * Run the watchers in a single queue.
42
+ *
43
+ * @param {Array} queue
44
+ */
45
+
46
+ function runBatcherQueue (queue) {
47
+ // do not cache length because more watchers might be pushed
48
+ // as we run existing watchers
49
+ for (var i = 0; i < queue.length; i++) {
50
+ var watcher = queue[i]
51
+ var id = watcher.id
52
+ has[id] = null
53
+ watcher.run()
54
+ // in dev build, check and stop circular updates.
55
+ if (process.env.NODE_ENV !== 'production' && has[id] != null) {
56
+ circular[id] = (circular[id] || 0) + 1
57
+ if (circular[id] > config._maxUpdateCount) {
58
+ queue.splice(has[id], 1)
59
+ _.warn(
60
+ 'You may have an infinite update loop for watcher ' +
61
+ 'with expression: ' + watcher.expression
62
+ )
63
+ }
64
+ }
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Push a watcher into the watcher queue.
70
+ * Jobs with duplicate IDs will be skipped unless it's
71
+ * pushed when the queue is being flushed.
72
+ *
73
+ * @param {Watcher} watcher
74
+ * properties:
75
+ * - {Number} id
76
+ * - {Function} run
77
+ */
78
+
79
+ exports.push = function (watcher) {
80
+ var id = watcher.id
81
+ if (has[id] == null) {
82
+ // if an internal watcher is pushed, but the internal
83
+ // queue is already depleted, we run it immediately.
84
+ if (internalQueueDepleted && !watcher.user) {
85
+ watcher.run()
86
+ return
87
+ }
88
+ // push watcher into appropriate queue
89
+ var q = watcher.user ? userQueue : queue
90
+ has[id] = q.length
91
+ q.push(watcher)
92
+ // queue the flush
93
+ if (!waiting) {
94
+ waiting = true
95
+ _.nextTick(flushBatcherQueue)
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * A doubly linked list-based Least Recently Used (LRU)
3
+ * cache. Will keep most recently used items while
4
+ * discarding least recently used items when its limit is
5
+ * reached. This is a bare-bone version of
6
+ * Rasmus Andersson's js-lru:
7
+ *
8
+ * https://github.com/rsms/js-lru
9
+ *
10
+ * @param {Number} limit
11
+ * @constructor
12
+ */
13
+
14
+ function Cache (limit) {
15
+ this.size = 0
16
+ this.limit = limit
17
+ this.head = this.tail = undefined
18
+ this._keymap = Object.create(null)
19
+ }
20
+
21
+ var p = Cache.prototype
22
+
23
+ /**
24
+ * Put <value> into the cache associated with <key>.
25
+ * Returns the entry which was removed to make room for
26
+ * the new entry. Otherwise undefined is returned.
27
+ * (i.e. if there was enough room already).
28
+ *
29
+ * @param {String} key
30
+ * @param {*} value
31
+ * @return {Entry|undefined}
32
+ */
33
+
34
+ p.put = function (key, value) {
35
+ var entry = {
36
+ key: key,
37
+ value: value
38
+ }
39
+ this._keymap[key] = entry
40
+ if (this.tail) {
41
+ this.tail.newer = entry
42
+ entry.older = this.tail
43
+ } else {
44
+ this.head = entry
45
+ }
46
+ this.tail = entry
47
+ if (this.size === this.limit) {
48
+ return this.shift()
49
+ } else {
50
+ this.size++
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Purge the least recently used (oldest) entry from the
56
+ * cache. Returns the removed entry or undefined if the
57
+ * cache was empty.
58
+ */
59
+
60
+ p.shift = function () {
61
+ var entry = this.head
62
+ if (entry) {
63
+ this.head = this.head.newer
64
+ this.head.older = undefined
65
+ entry.newer = entry.older = undefined
66
+ this._keymap[entry.key] = undefined
67
+ }
68
+ return entry
69
+ }
70
+
71
+ /**
72
+ * Get and register recent use of <key>. Returns the value
73
+ * associated with <key> or undefined if not in cache.
74
+ *
75
+ * @param {String} key
76
+ * @param {Boolean} returnEntry
77
+ * @return {Entry|*}
78
+ */
79
+
80
+ p.get = function (key, returnEntry) {
81
+ var entry = this._keymap[key]
82
+ if (entry === undefined) return
83
+ if (entry === this.tail) {
84
+ return returnEntry
85
+ ? entry
86
+ : entry.value
87
+ }
88
+ // HEAD--------------TAIL
89
+ // <.older .newer>
90
+ // <--- add direction --
91
+ // A B C <D> E
92
+ if (entry.newer) {
93
+ if (entry === this.head) {
94
+ this.head = entry.newer
95
+ }
96
+ entry.newer.older = entry.older // C <-- E.
97
+ }
98
+ if (entry.older) {
99
+ entry.older.newer = entry.newer // C. --> E
100
+ }
101
+ entry.newer = undefined // D --x
102
+ entry.older = this.tail // D. --> E
103
+ if (this.tail) {
104
+ this.tail.newer = entry // E. <-- D
105
+ }
106
+ this.tail = entry
107
+ return returnEntry
108
+ ? entry
109
+ : entry.value
110
+ }
111
+
112
+ module.exports = Cache
@@ -0,0 +1,183 @@
1
+ var _ = require('../util')
2
+ var textParser = require('../parsers/text')
3
+ var propDef = require('../directives/prop')
4
+ var propBindingModes = require('../config')._propBindingModes
5
+
6
+ // regexes
7
+ var identRE = require('../parsers/path').identRE
8
+ var dataAttrRE = /^data-/
9
+ var settablePathRE = /^[A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*|\[[^\[\]]+\])*$/
10
+ var literalValueRE = /^(true|false)$|^\d.*/
11
+
12
+ /**
13
+ * Compile param attributes on a root element and return
14
+ * a props link function.
15
+ *
16
+ * @param {Element|DocumentFragment} el
17
+ * @param {Array} propOptions
18
+ * @return {Function} propsLinkFn
19
+ */
20
+
21
+ module.exports = function compileProps (el, propOptions) {
22
+ var props = []
23
+ var i = propOptions.length
24
+ var options, name, attr, value, path, prop, literal, single
25
+ while (i--) {
26
+ options = propOptions[i]
27
+ name = options.name
28
+ // props could contain dashes, which will be
29
+ // interpreted as minus calculations by the parser
30
+ // so we need to camelize the path here
31
+ path = _.camelize(name.replace(dataAttrRE, ''))
32
+ if (!identRE.test(path)) {
33
+ process.env.NODE_ENV !== 'production' && _.warn(
34
+ 'Invalid prop key: "' + name + '". Prop keys ' +
35
+ 'must be valid identifiers.'
36
+ )
37
+ continue
38
+ }
39
+ attr = _.hyphenate(name)
40
+ value = el.getAttribute(attr)
41
+ if (value === null) {
42
+ attr = 'data-' + attr
43
+ value = el.getAttribute(attr)
44
+ }
45
+ // create a prop descriptor
46
+ prop = {
47
+ name: name,
48
+ raw: value,
49
+ path: path,
50
+ options: options,
51
+ mode: propBindingModes.ONE_WAY
52
+ }
53
+ if (value !== null) {
54
+ // important so that this doesn't get compiled
55
+ // again as a normal attribute binding
56
+ el.removeAttribute(attr)
57
+ var tokens = textParser.parse(value)
58
+ if (tokens) {
59
+ prop.dynamic = true
60
+ prop.parentPath = textParser.tokensToExp(tokens)
61
+ // check prop binding type.
62
+ single = tokens.length === 1
63
+ literal = literalValueRE.test(prop.parentPath)
64
+ // one time: {{* prop}}
65
+ if (literal || (single && tokens[0].oneTime)) {
66
+ prop.mode = propBindingModes.ONE_TIME
67
+ } else if (
68
+ !literal &&
69
+ (single && tokens[0].twoWay)
70
+ ) {
71
+ if (settablePathRE.test(prop.parentPath)) {
72
+ prop.mode = propBindingModes.TWO_WAY
73
+ } else {
74
+ process.env.NODE_ENV !== 'production' && _.warn(
75
+ 'Cannot bind two-way prop with non-settable ' +
76
+ 'parent path: ' + prop.parentPath
77
+ )
78
+ }
79
+ }
80
+ if (
81
+ process.env.NODE_ENV !== 'production' &&
82
+ options.twoWay &&
83
+ prop.mode !== propBindingModes.TWO_WAY
84
+ ) {
85
+ _.warn(
86
+ 'Prop "' + name + '" expects a two-way binding type.'
87
+ )
88
+ }
89
+ }
90
+ } else if (options && options.required) {
91
+ process.env.NODE_ENV !== 'production' && _.warn(
92
+ 'Missing required prop: ' + name
93
+ )
94
+ }
95
+ props.push(prop)
96
+ }
97
+ return makePropsLinkFn(props)
98
+ }
99
+
100
+ /**
101
+ * Build a function that applies props to a vm.
102
+ *
103
+ * @param {Array} props
104
+ * @return {Function} propsLinkFn
105
+ */
106
+
107
+ function makePropsLinkFn (props) {
108
+ return function propsLinkFn (vm, el) {
109
+ // store resolved props info
110
+ vm._props = {}
111
+ var i = props.length
112
+ var prop, path, options, value
113
+ while (i--) {
114
+ prop = props[i]
115
+ path = prop.path
116
+ vm._props[path] = prop
117
+ options = prop.options
118
+ if (prop.raw === null) {
119
+ // initialize absent prop
120
+ _.initProp(vm, prop, getDefault(options))
121
+ } else if (prop.dynamic) {
122
+ // dynamic prop
123
+ if (vm._context) {
124
+ if (prop.mode === propBindingModes.ONE_TIME) {
125
+ // one time binding
126
+ value = vm._context.$get(prop.parentPath)
127
+ _.initProp(vm, prop, value)
128
+ } else {
129
+ // dynamic binding
130
+ vm._bindDir('prop', el, prop, propDef)
131
+ }
132
+ } else {
133
+ process.env.NODE_ENV !== 'production' && _.warn(
134
+ 'Cannot bind dynamic prop on a root instance' +
135
+ ' with no parent: ' + prop.name + '="' +
136
+ prop.raw + '"'
137
+ )
138
+ }
139
+ } else {
140
+ // literal, cast it and just set once
141
+ var raw = prop.raw
142
+ value = options.type === Boolean && raw === ''
143
+ ? true
144
+ // do not cast emptry string.
145
+ // _.toNumber casts empty string to 0.
146
+ : raw.trim()
147
+ ? _.toBoolean(_.toNumber(raw))
148
+ : raw
149
+ _.initProp(vm, prop, value)
150
+ }
151
+ }
152
+ }
153
+ }
154
+
155
+ /**
156
+ * Get the default value of a prop.
157
+ *
158
+ * @param {Object} options
159
+ * @return {*}
160
+ */
161
+
162
+ function getDefault (options) {
163
+ // no default, return undefined
164
+ if (!options.hasOwnProperty('default')) {
165
+ // absent boolean value defaults to false
166
+ return options.type === Boolean
167
+ ? false
168
+ : undefined
169
+ }
170
+ var def = options.default
171
+ // warn against non-factory defaults for Object & Array
172
+ if (_.isObject(def)) {
173
+ process.env.NODE_ENV !== 'production' && _.warn(
174
+ 'Object/Array as default prop values will be shared ' +
175
+ 'across multiple instances. Use a factory function ' +
176
+ 'to return the default value instead.'
177
+ )
178
+ }
179
+ // call factory function for non-Function types
180
+ return typeof def === 'function' && options.type !== Function
181
+ ? def()
182
+ : def
183
+ }