locomotivecms_wagon 2.4.1 → 3.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (359) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -3
  3. data/generators/blank/app/assets/.babelrc +3 -0
  4. data/generators/blank/app/assets/fonts/.empty_directory +1 -0
  5. data/generators/blank/app/assets/javascripts/app.js +19 -0
  6. data/generators/blank/app/assets/javascripts/sections/_manager.js +94 -0
  7. data/generators/blank/app/assets/javascripts/sections/index.js +5 -0
  8. data/generators/blank/app/assets/package.json.tt +35 -0
  9. data/generators/blank/app/assets/postcss.config.js +6 -0
  10. data/generators/blank/app/assets/stylesheets/app.scss +1 -0
  11. data/generators/blank/app/assets/webpack.common.js +47 -0
  12. data/generators/blank/app/assets/webpack.dev.js +7 -0
  13. data/generators/blank/app/assets/webpack.prod.js +12 -0
  14. data/generators/blank/app/views/pages/404.liquid +1 -1
  15. data/generators/blank/app/views/pages/index.liquid +7 -15
  16. data/generators/blank/app/views/pages/layouts/default.liquid +22 -0
  17. data/generators/blank/app/views/sections/.empty_directory +1 -0
  18. data/generators/page/template.liquid.tt +11 -0
  19. data/generators/section/%type%.js.tt +26 -0
  20. data/generators/section/template.liquid.tt +183 -0
  21. data/lib/locomotive/wagon.rb +3 -2
  22. data/lib/locomotive/wagon/cli.rb +38 -10
  23. data/lib/locomotive/wagon/commands/clone_command.rb +3 -0
  24. data/lib/locomotive/wagon/commands/concerns/deploy_file_concern.rb +1 -1
  25. data/lib/locomotive/wagon/commands/concerns/steam_concern.rb +1 -1
  26. data/lib/locomotive/wagon/commands/loggers/sync_logger.rb +7 -0
  27. data/lib/locomotive/wagon/commands/pull_command.rb +1 -1
  28. data/lib/locomotive/wagon/commands/pull_sub_commands/concerns/assets_concern.rb +19 -10
  29. data/lib/locomotive/wagon/commands/pull_sub_commands/pull_base_command.rb +7 -3
  30. data/lib/locomotive/wagon/commands/pull_sub_commands/pull_content_entries_command.rb +11 -2
  31. data/lib/locomotive/wagon/commands/pull_sub_commands/pull_content_types_command.rb +1 -1
  32. data/lib/locomotive/wagon/commands/pull_sub_commands/pull_site_command.rb +24 -5
  33. data/lib/locomotive/wagon/commands/pull_sub_commands/pull_translations_command.rb +6 -1
  34. data/lib/locomotive/wagon/commands/push_command.rb +6 -4
  35. data/lib/locomotive/wagon/commands/push_sub_commands/push_pages_command.rb +6 -1
  36. data/lib/locomotive/wagon/commands/push_sub_commands/push_sections_command.rb +23 -0
  37. data/lib/locomotive/wagon/commands/push_sub_commands/push_site_command.rb +2 -0
  38. data/lib/locomotive/wagon/commands/serve_command.rb +1 -1
  39. data/lib/locomotive/wagon/commands/sync_command.rb +1 -1
  40. data/lib/locomotive/wagon/commands/sync_sub_commands/concerns/base_concern.rb +2 -2
  41. data/lib/locomotive/wagon/commands/sync_sub_commands/sync_pages_command.rb +48 -37
  42. data/lib/locomotive/wagon/commands/sync_sub_commands/sync_site_command.rb +15 -12
  43. data/lib/locomotive/wagon/commands/sync_sub_commands/sync_translations_command.rb +12 -0
  44. data/lib/locomotive/wagon/decorators/concerns/persist_assets_concern.rb +1 -1
  45. data/lib/locomotive/wagon/decorators/content_entry_decorator.rb +1 -1
  46. data/lib/locomotive/wagon/decorators/content_type_decorator.rb +5 -1
  47. data/lib/locomotive/wagon/decorators/content_type_field_decorator.rb +5 -1
  48. data/lib/locomotive/wagon/decorators/page_decorator.rb +11 -1
  49. data/lib/locomotive/wagon/decorators/section_decorator.rb +35 -0
  50. data/lib/locomotive/wagon/decorators/site_decorator.rb +12 -4
  51. data/lib/locomotive/wagon/decorators/theme_asset_decorator.rb +2 -2
  52. data/lib/locomotive/wagon/generators/page.rb +2 -12
  53. data/lib/locomotive/wagon/generators/section.rb +82 -0
  54. data/lib/locomotive/wagon/generators/site.rb +0 -3
  55. data/lib/locomotive/wagon/generators/site/base.rb +11 -28
  56. data/lib/locomotive/wagon/generators/site/blank.rb +1 -17
  57. data/lib/locomotive/wagon/generators/site/cloned.rb +1 -4
  58. data/lib/locomotive/wagon/generators/snippet.rb +3 -11
  59. data/lib/locomotive/wagon/middlewares/error_page.rb +26 -6
  60. data/lib/locomotive/wagon/tools/listen.rb +3 -3
  61. data/lib/locomotive/wagon/version.rb +1 -1
  62. data/locomotivecms_wagon.gemspec +7 -6
  63. data/spec/fixtures/cassettes/authenticate.yml +47 -47
  64. data/spec/fixtures/cassettes/delete.yml +261 -261
  65. data/spec/fixtures/cassettes/push.yml +4571 -1783
  66. data/spec/fixtures/cassettes/sync.yml +11483 -0
  67. data/spec/integration/cli_spec.rb +1 -1
  68. data/spec/integration/commands/delete_command_spec.rb +1 -2
  69. data/spec/integration/commands/push_command_spec.rb +4 -4
  70. data/spec/integration/commands/sync_command_spec.rb +54 -0
  71. data/spec/integration/generators/page_spec.rb +1 -1
  72. data/spec/unit/commands/pull_sub_commands/concerns/assets_concern_spec.rb +3 -3
  73. metadata +55 -306
  74. data/generators/blank/app/views/pages/404.liquid.haml +0 -11
  75. data/generators/blank/app/views/pages/index.liquid.haml +0 -16
  76. data/generators/bootstrap/Gemfile.tt +0 -24
  77. data/generators/bootstrap/Guardfile +0 -22
  78. data/generators/bootstrap/app/content_types/.empty_directory +0 -1
  79. data/generators/bootstrap/app/views/pages/404.liquid +0 -18
  80. data/generators/bootstrap/app/views/pages/404.liquid.haml +0 -14
  81. data/generators/bootstrap/app/views/pages/index.liquid +0 -31
  82. data/generators/bootstrap/app/views/pages/index.liquid.haml +0 -25
  83. data/generators/bootstrap/app/views/pages/layouts/default.liquid +0 -31
  84. data/generators/bootstrap/app/views/pages/layouts/default.liquid.haml +0 -30
  85. data/generators/bootstrap/app/views/pages/layouts/simple.liquid +0 -36
  86. data/generators/bootstrap/app/views/pages/layouts/simple.liquid.haml +0 -29
  87. data/generators/bootstrap/app/views/snippets/footer.liquid +0 -5
  88. data/generators/bootstrap/app/views/snippets/footer.liquid.haml +0 -3
  89. data/generators/bootstrap/app/views/snippets/nav.liquid +0 -26
  90. data/generators/bootstrap/app/views/snippets/nav.liquid.haml +0 -19
  91. data/generators/bootstrap/config/deploy.yml +0 -16
  92. data/generators/bootstrap/config/metafields_schema.yml +0 -56
  93. data/generators/bootstrap/config/site.yml.tt +0 -48
  94. data/generators/bootstrap/config/translations.yml +0 -8
  95. data/generators/bootstrap/data/.empty_directory +0 -1
  96. data/generators/bootstrap/icon.png +0 -0
  97. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  98. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -288
  99. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  100. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  101. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  102. data/generators/bootstrap/public/images/favicon.png +0 -0
  103. data/generators/bootstrap/public/javascripts/application.js +0 -2
  104. data/generators/bootstrap/public/javascripts/bootstrap.min.js +0 -7
  105. data/generators/bootstrap/public/javascripts/bootstrap/affix.js +0 -162
  106. data/generators/bootstrap/public/javascripts/bootstrap/alert.js +0 -94
  107. data/generators/bootstrap/public/javascripts/bootstrap/button.js +0 -120
  108. data/generators/bootstrap/public/javascripts/bootstrap/carousel.js +0 -237
  109. data/generators/bootstrap/public/javascripts/bootstrap/collapse.js +0 -211
  110. data/generators/bootstrap/public/javascripts/bootstrap/dropdown.js +0 -165
  111. data/generators/bootstrap/public/javascripts/bootstrap/modal.js +0 -337
  112. data/generators/bootstrap/public/javascripts/bootstrap/popover.js +0 -108
  113. data/generators/bootstrap/public/javascripts/bootstrap/scrollspy.js +0 -172
  114. data/generators/bootstrap/public/javascripts/bootstrap/tab.js +0 -155
  115. data/generators/bootstrap/public/javascripts/bootstrap/tooltip.js +0 -514
  116. data/generators/bootstrap/public/javascripts/bootstrap/transition.js +0 -59
  117. data/generators/bootstrap/public/javascripts/jquery.min.js +0 -5
  118. data/generators/bootstrap/public/stylesheets/application.css +0 -7
  119. data/generators/bootstrap/public/stylesheets/application.scss +0 -7
  120. data/generators/bootstrap/public/stylesheets/bootstrap.css +0 -5
  121. data/generators/bootstrap/public/stylesheets/bootstrap.scss +0 -63
  122. data/generators/bootstrap/public/stylesheets/bootstrap/_alerts.scss +0 -73
  123. data/generators/bootstrap/public/stylesheets/bootstrap/_badges.scss +0 -68
  124. data/generators/bootstrap/public/stylesheets/bootstrap/_breadcrumbs.scss +0 -28
  125. data/generators/bootstrap/public/stylesheets/bootstrap/_button-groups.scss +0 -244
  126. data/generators/bootstrap/public/stylesheets/bootstrap/_buttons.scss +0 -168
  127. data/generators/bootstrap/public/stylesheets/bootstrap/_carousel.scss +0 -269
  128. data/generators/bootstrap/public/stylesheets/bootstrap/_close.scss +0 -36
  129. data/generators/bootstrap/public/stylesheets/bootstrap/_code.scss +0 -69
  130. data/generators/bootstrap/public/stylesheets/bootstrap/_component-animations.scss +0 -37
  131. data/generators/bootstrap/public/stylesheets/bootstrap/_dropdowns.scss +0 -216
  132. data/generators/bootstrap/public/stylesheets/bootstrap/_forms.scss +0 -611
  133. data/generators/bootstrap/public/stylesheets/bootstrap/_glyphicons.scss +0 -307
  134. data/generators/bootstrap/public/stylesheets/bootstrap/_grid.scss +0 -84
  135. data/generators/bootstrap/public/stylesheets/bootstrap/_input-groups.scss +0 -167
  136. data/generators/bootstrap/public/stylesheets/bootstrap/_jumbotron.scss +0 -52
  137. data/generators/bootstrap/public/stylesheets/bootstrap/_labels.scss +0 -66
  138. data/generators/bootstrap/public/stylesheets/bootstrap/_list-group.scss +0 -130
  139. data/generators/bootstrap/public/stylesheets/bootstrap/_media.scss +0 -66
  140. data/generators/bootstrap/public/stylesheets/bootstrap/_mixins.scss +0 -40
  141. data/generators/bootstrap/public/stylesheets/bootstrap/_modals.scss +0 -150
  142. data/generators/bootstrap/public/stylesheets/bootstrap/_navbar.scss +0 -662
  143. data/generators/bootstrap/public/stylesheets/bootstrap/_navs.scss +0 -242
  144. data/generators/bootstrap/public/stylesheets/bootstrap/_normalize.scss +0 -424
  145. data/generators/bootstrap/public/stylesheets/bootstrap/_pager.scss +0 -54
  146. data/generators/bootstrap/public/stylesheets/bootstrap/_pagination.scss +0 -89
  147. data/generators/bootstrap/public/stylesheets/bootstrap/_panels.scss +0 -271
  148. data/generators/bootstrap/public/stylesheets/bootstrap/_popovers.scss +0 -131
  149. data/generators/bootstrap/public/stylesheets/bootstrap/_print.scss +0 -101
  150. data/generators/bootstrap/public/stylesheets/bootstrap/_progress-bars.scss +0 -87
  151. data/generators/bootstrap/public/stylesheets/bootstrap/_responsive-embed.scss +0 -35
  152. data/generators/bootstrap/public/stylesheets/bootstrap/_responsive-utilities.scss +0 -179
  153. data/generators/bootstrap/public/stylesheets/bootstrap/_scaffolding.scss +0 -161
  154. data/generators/bootstrap/public/stylesheets/bootstrap/_tables.scss +0 -234
  155. data/generators/bootstrap/public/stylesheets/bootstrap/_theme.scss +0 -291
  156. data/generators/bootstrap/public/stylesheets/bootstrap/_thumbnails.scss +0 -38
  157. data/generators/bootstrap/public/stylesheets/bootstrap/_tooltip.scss +0 -101
  158. data/generators/bootstrap/public/stylesheets/bootstrap/_type.scss +0 -298
  159. data/generators/bootstrap/public/stylesheets/bootstrap/_utilities.scss +0 -55
  160. data/generators/bootstrap/public/stylesheets/bootstrap/_variables.scss +0 -872
  161. data/generators/bootstrap/public/stylesheets/bootstrap/_wells.scss +0 -29
  162. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_alerts.scss +0 -14
  163. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_background-variant.scss +0 -12
  164. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_border-radius.scss +0 -18
  165. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_buttons.scss +0 -68
  166. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_center-block.scss +0 -7
  167. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_clearfix.scss +0 -22
  168. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_forms.scss +0 -88
  169. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_gradients.scss +0 -58
  170. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -81
  171. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_grid.scss +0 -122
  172. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_hide-text.scss +0 -21
  173. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_image.scss +0 -33
  174. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_labels.scss +0 -12
  175. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_list-group.scss +0 -32
  176. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  177. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  178. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_opacity.scss +0 -8
  179. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_pagination.scss +0 -24
  180. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_panels.scss +0 -24
  181. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_progress-bar.scss +0 -10
  182. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_reset-filter.scss +0 -8
  183. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_reset-text.scss +0 -18
  184. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_resize.scss +0 -6
  185. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_responsive-visibility.scss +0 -21
  186. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_size.scss +0 -10
  187. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_tab-focus.scss +0 -9
  188. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_table-row.scss +0 -28
  189. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -12
  190. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_text-overflow.scss +0 -8
  191. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +0 -222
  192. data/generators/foundation/Gemfile.tt +0 -24
  193. data/generators/foundation/Guardfile +0 -22
  194. data/generators/foundation/app/content_types/.gitkeep +0 -0
  195. data/generators/foundation/app/views/pages/404.liquid +0 -11
  196. data/generators/foundation/app/views/pages/404.liquid.haml +0 -11
  197. data/generators/foundation/app/views/pages/index.liquid +0 -172
  198. data/generators/foundation/app/views/pages/index.liquid.haml +0 -144
  199. data/generators/foundation/app/views/snippets/.gitkeep +0 -0
  200. data/generators/foundation/config/deploy.yml +0 -16
  201. data/generators/foundation/config/metafields_schema.yml +0 -56
  202. data/generators/foundation/config/site.yml +0 -48
  203. data/generators/foundation/config/translations.yml +0 -8
  204. data/generators/foundation/data/.gitkeep +0 -0
  205. data/generators/foundation/log/.gitkeep +0 -0
  206. data/generators/foundation/public/images/.gitkeep +0 -0
  207. data/generators/foundation/public/javascripts/app.js +0 -1
  208. data/generators/foundation/public/javascripts/vendor/foundation.js +0 -11788
  209. data/generators/foundation/public/javascripts/vendor/foundation.min.js +0 -5
  210. data/generators/foundation/public/javascripts/vendor/what-input.js +0 -212
  211. data/generators/foundation/public/javascripts/vendor/what-input.min.js +0 -1
  212. data/generators/foundation/public/stylesheets/_settings.scss +0 -869
  213. data/generators/foundation/public/stylesheets/app.css +0 -0
  214. data/generators/foundation/public/stylesheets/app.scss +0 -52
  215. data/generators/foundation/public/stylesheets/foundation.css +0 -5805
  216. data/generators/foundation/public/stylesheets/foundation6/_global.scss +0 -249
  217. data/generators/foundation/public/stylesheets/foundation6/components/_accordion-menu.scss +0 -171
  218. data/generators/foundation/public/stylesheets/foundation6/components/_accordion.scss +0 -155
  219. data/generators/foundation/public/stylesheets/foundation6/components/_badge.scss +0 -63
  220. data/generators/foundation/public/stylesheets/foundation6/components/_breadcrumbs.scss +0 -117
  221. data/generators/foundation/public/stylesheets/foundation6/components/_button-group.scss +0 -253
  222. data/generators/foundation/public/stylesheets/foundation6/components/_button.scss +0 -385
  223. data/generators/foundation/public/stylesheets/foundation6/components/_callout.scss +0 -106
  224. data/generators/foundation/public/stylesheets/foundation6/components/_card.scss +0 -129
  225. data/generators/foundation/public/stylesheets/foundation6/components/_close-button.scss +0 -102
  226. data/generators/foundation/public/stylesheets/foundation6/components/_drilldown.scss +0 -142
  227. data/generators/foundation/public/stylesheets/foundation6/components/_dropdown-menu.scss +0 -274
  228. data/generators/foundation/public/stylesheets/foundation6/components/_dropdown.scss +0 -79
  229. data/generators/foundation/public/stylesheets/foundation6/components/_flex-video.scss +0 -1
  230. data/generators/foundation/public/stylesheets/foundation6/components/_flex.scss +0 -117
  231. data/generators/foundation/public/stylesheets/foundation6/components/_float.scss +0 -27
  232. data/generators/foundation/public/stylesheets/foundation6/components/_label.scss +0 -64
  233. data/generators/foundation/public/stylesheets/foundation6/components/_media-object.scss +0 -114
  234. data/generators/foundation/public/stylesheets/foundation6/components/_menu-icon.scss +0 -9
  235. data/generators/foundation/public/stylesheets/foundation6/components/_menu.scss +0 -495
  236. data/generators/foundation/public/stylesheets/foundation6/components/_off-canvas.scss +0 -505
  237. data/generators/foundation/public/stylesheets/foundation6/components/_orbit.scss +0 -196
  238. data/generators/foundation/public/stylesheets/foundation6/components/_pagination.scss +0 -193
  239. data/generators/foundation/public/stylesheets/foundation6/components/_progress-bar.scss +0 -64
  240. data/generators/foundation/public/stylesheets/foundation6/components/_responsive-embed.scss +0 -70
  241. data/generators/foundation/public/stylesheets/foundation6/components/_reveal.scss +0 -180
  242. data/generators/foundation/public/stylesheets/foundation6/components/_slider.scss +0 -137
  243. data/generators/foundation/public/stylesheets/foundation6/components/_sticky.scss +0 -39
  244. data/generators/foundation/public/stylesheets/foundation6/components/_switch.scss +0 -247
  245. data/generators/foundation/public/stylesheets/foundation6/components/_table.scss +0 -330
  246. data/generators/foundation/public/stylesheets/foundation6/components/_tabs.scss +0 -196
  247. data/generators/foundation/public/stylesheets/foundation6/components/_thumbnail.scss +0 -67
  248. data/generators/foundation/public/stylesheets/foundation6/components/_title-bar.scss +0 -84
  249. data/generators/foundation/public/stylesheets/foundation6/components/_tooltip.scss +0 -160
  250. data/generators/foundation/public/stylesheets/foundation6/components/_top-bar.scss +0 -175
  251. data/generators/foundation/public/stylesheets/foundation6/components/_visibility.scss +0 -132
  252. data/generators/foundation/public/stylesheets/foundation6/forms/_checkbox.scss +0 -41
  253. data/generators/foundation/public/stylesheets/foundation6/forms/_error.scss +0 -88
  254. data/generators/foundation/public/stylesheets/foundation6/forms/_fieldset.scss +0 -53
  255. data/generators/foundation/public/stylesheets/foundation6/forms/_forms.scss +0 -34
  256. data/generators/foundation/public/stylesheets/foundation6/forms/_help-text.scss +0 -30
  257. data/generators/foundation/public/stylesheets/foundation6/forms/_input-group.scss +0 -142
  258. data/generators/foundation/public/stylesheets/foundation6/forms/_label.scss +0 -50
  259. data/generators/foundation/public/stylesheets/foundation6/forms/_meter.scss +0 -116
  260. data/generators/foundation/public/stylesheets/foundation6/forms/_progress.scss +0 -94
  261. data/generators/foundation/public/stylesheets/foundation6/forms/_range.scss +0 -149
  262. data/generators/foundation/public/stylesheets/foundation6/forms/_select.scss +0 -86
  263. data/generators/foundation/public/stylesheets/foundation6/forms/_text.scss +0 -179
  264. data/generators/foundation/public/stylesheets/foundation6/foundation.scss +0 -133
  265. data/generators/foundation/public/stylesheets/foundation6/grid/_classes.scss +0 -176
  266. data/generators/foundation/public/stylesheets/foundation6/grid/_column.scss +0 -112
  267. data/generators/foundation/public/stylesheets/foundation6/grid/_flex-grid.scss +0 -259
  268. data/generators/foundation/public/stylesheets/foundation6/grid/_grid.scss +0 -48
  269. data/generators/foundation/public/stylesheets/foundation6/grid/_gutter.scss +0 -82
  270. data/generators/foundation/public/stylesheets/foundation6/grid/_layout.scss +0 -76
  271. data/generators/foundation/public/stylesheets/foundation6/grid/_position.scss +0 -76
  272. data/generators/foundation/public/stylesheets/foundation6/grid/_row.scss +0 -99
  273. data/generators/foundation/public/stylesheets/foundation6/grid/_size.scss +0 -24
  274. data/generators/foundation/public/stylesheets/foundation6/motion-ui/_classes.scss +0 -109
  275. data/generators/foundation/public/stylesheets/foundation6/motion-ui/_settings.scss +0 -61
  276. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_fade.scss +0 -32
  277. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_hinge.scss +0 -65
  278. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_shake.scss +0 -15
  279. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_slide.scss +0 -41
  280. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_spin.scss +0 -28
  281. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_wiggle.scss +0 -13
  282. data/generators/foundation/public/stylesheets/foundation6/motion-ui/effects/_zoom.scss +0 -15
  283. data/generators/foundation/public/stylesheets/foundation6/motion-ui/motion-ui.scss +0 -29
  284. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_fade.scss +0 -28
  285. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_hinge.scss +0 -43
  286. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_slide.scss +0 -42
  287. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_spin.scss +0 -39
  288. data/generators/foundation/public/stylesheets/foundation6/motion-ui/transitions/_zoom.scss +0 -39
  289. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_animation.scss +0 -7
  290. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_args.scss +0 -15
  291. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_keyframe.scss +0 -136
  292. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_selector.scss +0 -23
  293. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_series.scss +0 -54
  294. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_transition.scss +0 -45
  295. data/generators/foundation/public/stylesheets/foundation6/motion-ui/util/_unit.scss +0 -7
  296. data/generators/foundation/public/stylesheets/foundation6/prototype/_arrow.scss +0 -36
  297. data/generators/foundation/public/stylesheets/foundation6/prototype/_border-box.scss +0 -35
  298. data/generators/foundation/public/stylesheets/foundation6/prototype/_border-none.scss +0 -35
  299. data/generators/foundation/public/stylesheets/foundation6/prototype/_bordered.scss +0 -54
  300. data/generators/foundation/public/stylesheets/foundation6/prototype/_box.scss +0 -23
  301. data/generators/foundation/public/stylesheets/foundation6/prototype/_display.scss +0 -50
  302. data/generators/foundation/public/stylesheets/foundation6/prototype/_font-styling.scss +0 -95
  303. data/generators/foundation/public/stylesheets/foundation6/prototype/_list-style-type.scss +0 -95
  304. data/generators/foundation/public/stylesheets/foundation6/prototype/_overflow.scss +0 -72
  305. data/generators/foundation/public/stylesheets/foundation6/prototype/_position.scss +0 -114
  306. data/generators/foundation/public/stylesheets/foundation6/prototype/_prototype.scss +0 -87
  307. data/generators/foundation/public/stylesheets/foundation6/prototype/_relation.scss +0 -157
  308. data/generators/foundation/public/stylesheets/foundation6/prototype/_rotate.scss +0 -31
  309. data/generators/foundation/public/stylesheets/foundation6/prototype/_rounded.scss +0 -54
  310. data/generators/foundation/public/stylesheets/foundation6/prototype/_separator.scss +0 -96
  311. data/generators/foundation/public/stylesheets/foundation6/prototype/_shadow.scss +0 -43
  312. data/generators/foundation/public/stylesheets/foundation6/prototype/_sizing.scss +0 -73
  313. data/generators/foundation/public/stylesheets/foundation6/prototype/_spacing.scss +0 -204
  314. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-decoration.scss +0 -48
  315. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-transformation.scss +0 -48
  316. data/generators/foundation/public/stylesheets/foundation6/prototype/_text-utilities.scss +0 -88
  317. data/generators/foundation/public/stylesheets/foundation6/settings/_settings.scss +0 -869
  318. data/generators/foundation/public/stylesheets/foundation6/typography/_alignment.scss +0 -22
  319. data/generators/foundation/public/stylesheets/foundation6/typography/_base.scss +0 -509
  320. data/generators/foundation/public/stylesheets/foundation6/typography/_helpers.scss +0 -80
  321. data/generators/foundation/public/stylesheets/foundation6/typography/_print.scss +0 -86
  322. data/generators/foundation/public/stylesheets/foundation6/typography/_typography.scss +0 -26
  323. data/generators/foundation/public/stylesheets/foundation6/util/_breakpoint.scss +0 -348
  324. data/generators/foundation/public/stylesheets/foundation6/util/_color.scss +0 -129
  325. data/generators/foundation/public/stylesheets/foundation6/util/_direction.scss +0 -31
  326. data/generators/foundation/public/stylesheets/foundation6/util/_flex.scss +0 -85
  327. data/generators/foundation/public/stylesheets/foundation6/util/_math.scss +0 -72
  328. data/generators/foundation/public/stylesheets/foundation6/util/_mixins.scss +0 -313
  329. data/generators/foundation/public/stylesheets/foundation6/util/_selector.scss +0 -41
  330. data/generators/foundation/public/stylesheets/foundation6/util/_typography.scss +0 -26
  331. data/generators/foundation/public/stylesheets/foundation6/util/_unit.scss +0 -152
  332. data/generators/foundation/public/stylesheets/foundation6/util/_util.scss +0 -14
  333. data/generators/foundation/public/stylesheets/foundation6/util/_value.scss +0 -160
  334. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/_normalize.scss +0 -3
  335. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_import-now.scss +0 -11
  336. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +0 -676
  337. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_variables.scss +0 -36
  338. data/generators/foundation/public/stylesheets/foundation6/vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +0 -61
  339. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_contain.scss +0 -31
  340. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_purge.scss +0 -38
  341. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_remove.scss +0 -31
  342. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_replace.scss +0 -46
  343. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/functions/_to-list.scss +0 -27
  344. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +0 -25
  345. data/generators/foundation/public/stylesheets/foundation6/vendor/sassy-lists/stylesheets/helpers/_true.scss +0 -13
  346. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_cell.scss +0 -169
  347. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_classes.scss +0 -476
  348. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_collapse.scss +0 -74
  349. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_frame.scss +0 -85
  350. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_grid.scss +0 -35
  351. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_gutters.scss +0 -45
  352. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_layout.scss +0 -33
  353. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_position.scss +0 -28
  354. data/generators/foundation/public/stylesheets/foundation6/xy-grid/_xy-grid.scss +0 -51
  355. data/generators/page/template.liquid.haml.tt +0 -47
  356. data/generators/snippet/template.liquid.haml.tt +0 -4
  357. data/lib/locomotive/wagon/generators/site/bootstrap.rb +0 -52
  358. data/lib/locomotive/wagon/generators/site/foundation.rb +0 -44
  359. data/lib/locomotive/wagon/generators/site/line_case.rb +0 -20
@@ -1,211 +0,0 @@
1
- /* ========================================================================
2
- * Bootstrap: collapse.js v3.3.5
3
- * http://getbootstrap.com/javascript/#collapse
4
- * ========================================================================
5
- * Copyright 2011-2015 Twitter, Inc.
6
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
- * ======================================================================== */
8
-
9
-
10
- +function ($) {
11
- 'use strict';
12
-
13
- // COLLAPSE PUBLIC CLASS DEFINITION
14
- // ================================
15
-
16
- var Collapse = function (element, options) {
17
- this.$element = $(element)
18
- this.options = $.extend({}, Collapse.DEFAULTS, options)
19
- this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
20
- '[data-toggle="collapse"][data-target="#' + element.id + '"]')
21
- this.transitioning = null
22
-
23
- if (this.options.parent) {
24
- this.$parent = this.getParent()
25
- } else {
26
- this.addAriaAndCollapsedClass(this.$element, this.$trigger)
27
- }
28
-
29
- if (this.options.toggle) this.toggle()
30
- }
31
-
32
- Collapse.VERSION = '3.3.5'
33
-
34
- Collapse.TRANSITION_DURATION = 350
35
-
36
- Collapse.DEFAULTS = {
37
- toggle: true
38
- }
39
-
40
- Collapse.prototype.dimension = function () {
41
- var hasWidth = this.$element.hasClass('width')
42
- return hasWidth ? 'width' : 'height'
43
- }
44
-
45
- Collapse.prototype.show = function () {
46
- if (this.transitioning || this.$element.hasClass('in')) return
47
-
48
- var activesData
49
- var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
50
-
51
- if (actives && actives.length) {
52
- activesData = actives.data('bs.collapse')
53
- if (activesData && activesData.transitioning) return
54
- }
55
-
56
- var startEvent = $.Event('show.bs.collapse')
57
- this.$element.trigger(startEvent)
58
- if (startEvent.isDefaultPrevented()) return
59
-
60
- if (actives && actives.length) {
61
- Plugin.call(actives, 'hide')
62
- activesData || actives.data('bs.collapse', null)
63
- }
64
-
65
- var dimension = this.dimension()
66
-
67
- this.$element
68
- .removeClass('collapse')
69
- .addClass('collapsing')[dimension](0)
70
- .attr('aria-expanded', true)
71
-
72
- this.$trigger
73
- .removeClass('collapsed')
74
- .attr('aria-expanded', true)
75
-
76
- this.transitioning = 1
77
-
78
- var complete = function () {
79
- this.$element
80
- .removeClass('collapsing')
81
- .addClass('collapse in')[dimension]('')
82
- this.transitioning = 0
83
- this.$element
84
- .trigger('shown.bs.collapse')
85
- }
86
-
87
- if (!$.support.transition) return complete.call(this)
88
-
89
- var scrollSize = $.camelCase(['scroll', dimension].join('-'))
90
-
91
- this.$element
92
- .one('bsTransitionEnd', $.proxy(complete, this))
93
- .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
94
- }
95
-
96
- Collapse.prototype.hide = function () {
97
- if (this.transitioning || !this.$element.hasClass('in')) return
98
-
99
- var startEvent = $.Event('hide.bs.collapse')
100
- this.$element.trigger(startEvent)
101
- if (startEvent.isDefaultPrevented()) return
102
-
103
- var dimension = this.dimension()
104
-
105
- this.$element[dimension](this.$element[dimension]())[0].offsetHeight
106
-
107
- this.$element
108
- .addClass('collapsing')
109
- .removeClass('collapse in')
110
- .attr('aria-expanded', false)
111
-
112
- this.$trigger
113
- .addClass('collapsed')
114
- .attr('aria-expanded', false)
115
-
116
- this.transitioning = 1
117
-
118
- var complete = function () {
119
- this.transitioning = 0
120
- this.$element
121
- .removeClass('collapsing')
122
- .addClass('collapse')
123
- .trigger('hidden.bs.collapse')
124
- }
125
-
126
- if (!$.support.transition) return complete.call(this)
127
-
128
- this.$element
129
- [dimension](0)
130
- .one('bsTransitionEnd', $.proxy(complete, this))
131
- .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
132
- }
133
-
134
- Collapse.prototype.toggle = function () {
135
- this[this.$element.hasClass('in') ? 'hide' : 'show']()
136
- }
137
-
138
- Collapse.prototype.getParent = function () {
139
- return $(this.options.parent)
140
- .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
141
- .each($.proxy(function (i, element) {
142
- var $element = $(element)
143
- this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
144
- }, this))
145
- .end()
146
- }
147
-
148
- Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
149
- var isOpen = $element.hasClass('in')
150
-
151
- $element.attr('aria-expanded', isOpen)
152
- $trigger
153
- .toggleClass('collapsed', !isOpen)
154
- .attr('aria-expanded', isOpen)
155
- }
156
-
157
- function getTargetFromTrigger($trigger) {
158
- var href
159
- var target = $trigger.attr('data-target')
160
- || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
161
-
162
- return $(target)
163
- }
164
-
165
-
166
- // COLLAPSE PLUGIN DEFINITION
167
- // ==========================
168
-
169
- function Plugin(option) {
170
- return this.each(function () {
171
- var $this = $(this)
172
- var data = $this.data('bs.collapse')
173
- var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
174
-
175
- if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
176
- if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
177
- if (typeof option == 'string') data[option]()
178
- })
179
- }
180
-
181
- var old = $.fn.collapse
182
-
183
- $.fn.collapse = Plugin
184
- $.fn.collapse.Constructor = Collapse
185
-
186
-
187
- // COLLAPSE NO CONFLICT
188
- // ====================
189
-
190
- $.fn.collapse.noConflict = function () {
191
- $.fn.collapse = old
192
- return this
193
- }
194
-
195
-
196
- // COLLAPSE DATA-API
197
- // =================
198
-
199
- $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
200
- var $this = $(this)
201
-
202
- if (!$this.attr('data-target')) e.preventDefault()
203
-
204
- var $target = getTargetFromTrigger($this)
205
- var data = $target.data('bs.collapse')
206
- var option = data ? 'toggle' : $this.data()
207
-
208
- Plugin.call($target, option)
209
- })
210
-
211
- }(jQuery);
@@ -1,165 +0,0 @@
1
- /* ========================================================================
2
- * Bootstrap: dropdown.js v3.3.5
3
- * http://getbootstrap.com/javascript/#dropdowns
4
- * ========================================================================
5
- * Copyright 2011-2015 Twitter, Inc.
6
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
- * ======================================================================== */
8
-
9
-
10
- +function ($) {
11
- 'use strict';
12
-
13
- // DROPDOWN CLASS DEFINITION
14
- // =========================
15
-
16
- var backdrop = '.dropdown-backdrop'
17
- var toggle = '[data-toggle="dropdown"]'
18
- var Dropdown = function (element) {
19
- $(element).on('click.bs.dropdown', this.toggle)
20
- }
21
-
22
- Dropdown.VERSION = '3.3.5'
23
-
24
- function getParent($this) {
25
- var selector = $this.attr('data-target')
26
-
27
- if (!selector) {
28
- selector = $this.attr('href')
29
- selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
30
- }
31
-
32
- var $parent = selector && $(selector)
33
-
34
- return $parent && $parent.length ? $parent : $this.parent()
35
- }
36
-
37
- function clearMenus(e) {
38
- if (e && e.which === 3) return
39
- $(backdrop).remove()
40
- $(toggle).each(function () {
41
- var $this = $(this)
42
- var $parent = getParent($this)
43
- var relatedTarget = { relatedTarget: this }
44
-
45
- if (!$parent.hasClass('open')) return
46
-
47
- if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
48
-
49
- $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
50
-
51
- if (e.isDefaultPrevented()) return
52
-
53
- $this.attr('aria-expanded', 'false')
54
- $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
55
- })
56
- }
57
-
58
- Dropdown.prototype.toggle = function (e) {
59
- var $this = $(this)
60
-
61
- if ($this.is('.disabled, :disabled')) return
62
-
63
- var $parent = getParent($this)
64
- var isActive = $parent.hasClass('open')
65
-
66
- clearMenus()
67
-
68
- if (!isActive) {
69
- if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
70
- // if mobile we use a backdrop because click events don't delegate
71
- $(document.createElement('div'))
72
- .addClass('dropdown-backdrop')
73
- .insertAfter($(this))
74
- .on('click', clearMenus)
75
- }
76
-
77
- var relatedTarget = { relatedTarget: this }
78
- $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
79
-
80
- if (e.isDefaultPrevented()) return
81
-
82
- $this
83
- .trigger('focus')
84
- .attr('aria-expanded', 'true')
85
-
86
- $parent
87
- .toggleClass('open')
88
- .trigger('shown.bs.dropdown', relatedTarget)
89
- }
90
-
91
- return false
92
- }
93
-
94
- Dropdown.prototype.keydown = function (e) {
95
- if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
96
-
97
- var $this = $(this)
98
-
99
- e.preventDefault()
100
- e.stopPropagation()
101
-
102
- if ($this.is('.disabled, :disabled')) return
103
-
104
- var $parent = getParent($this)
105
- var isActive = $parent.hasClass('open')
106
-
107
- if (!isActive && e.which != 27 || isActive && e.which == 27) {
108
- if (e.which == 27) $parent.find(toggle).trigger('focus')
109
- return $this.trigger('click')
110
- }
111
-
112
- var desc = ' li:not(.disabled):visible a'
113
- var $items = $parent.find('.dropdown-menu' + desc)
114
-
115
- if (!$items.length) return
116
-
117
- var index = $items.index(e.target)
118
-
119
- if (e.which == 38 && index > 0) index-- // up
120
- if (e.which == 40 && index < $items.length - 1) index++ // down
121
- if (!~index) index = 0
122
-
123
- $items.eq(index).trigger('focus')
124
- }
125
-
126
-
127
- // DROPDOWN PLUGIN DEFINITION
128
- // ==========================
129
-
130
- function Plugin(option) {
131
- return this.each(function () {
132
- var $this = $(this)
133
- var data = $this.data('bs.dropdown')
134
-
135
- if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
136
- if (typeof option == 'string') data[option].call($this)
137
- })
138
- }
139
-
140
- var old = $.fn.dropdown
141
-
142
- $.fn.dropdown = Plugin
143
- $.fn.dropdown.Constructor = Dropdown
144
-
145
-
146
- // DROPDOWN NO CONFLICT
147
- // ====================
148
-
149
- $.fn.dropdown.noConflict = function () {
150
- $.fn.dropdown = old
151
- return this
152
- }
153
-
154
-
155
- // APPLY TO STANDARD DROPDOWN ELEMENTS
156
- // ===================================
157
-
158
- $(document)
159
- .on('click.bs.dropdown.data-api', clearMenus)
160
- .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
161
- .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
162
- .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
163
- .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
164
-
165
- }(jQuery);
@@ -1,337 +0,0 @@
1
- /* ========================================================================
2
- * Bootstrap: modal.js v3.3.5
3
- * http://getbootstrap.com/javascript/#modals
4
- * ========================================================================
5
- * Copyright 2011-2015 Twitter, Inc.
6
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
- * ======================================================================== */
8
-
9
-
10
- +function ($) {
11
- 'use strict';
12
-
13
- // MODAL CLASS DEFINITION
14
- // ======================
15
-
16
- var Modal = function (element, options) {
17
- this.options = options
18
- this.$body = $(document.body)
19
- this.$element = $(element)
20
- this.$dialog = this.$element.find('.modal-dialog')
21
- this.$backdrop = null
22
- this.isShown = null
23
- this.originalBodyPad = null
24
- this.scrollbarWidth = 0
25
- this.ignoreBackdropClick = false
26
-
27
- if (this.options.remote) {
28
- this.$element
29
- .find('.modal-content')
30
- .load(this.options.remote, $.proxy(function () {
31
- this.$element.trigger('loaded.bs.modal')
32
- }, this))
33
- }
34
- }
35
-
36
- Modal.VERSION = '3.3.5'
37
-
38
- Modal.TRANSITION_DURATION = 300
39
- Modal.BACKDROP_TRANSITION_DURATION = 150
40
-
41
- Modal.DEFAULTS = {
42
- backdrop: true,
43
- keyboard: true,
44
- show: true
45
- }
46
-
47
- Modal.prototype.toggle = function (_relatedTarget) {
48
- return this.isShown ? this.hide() : this.show(_relatedTarget)
49
- }
50
-
51
- Modal.prototype.show = function (_relatedTarget) {
52
- var that = this
53
- var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
54
-
55
- this.$element.trigger(e)
56
-
57
- if (this.isShown || e.isDefaultPrevented()) return
58
-
59
- this.isShown = true
60
-
61
- this.checkScrollbar()
62
- this.setScrollbar()
63
- this.$body.addClass('modal-open')
64
-
65
- this.escape()
66
- this.resize()
67
-
68
- this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
69
-
70
- this.$dialog.on('mousedown.dismiss.bs.modal', function () {
71
- that.$element.one('mouseup.dismiss.bs.modal', function (e) {
72
- if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
73
- })
74
- })
75
-
76
- this.backdrop(function () {
77
- var transition = $.support.transition && that.$element.hasClass('fade')
78
-
79
- if (!that.$element.parent().length) {
80
- that.$element.appendTo(that.$body) // don't move modals dom position
81
- }
82
-
83
- that.$element
84
- .show()
85
- .scrollTop(0)
86
-
87
- that.adjustDialog()
88
-
89
- if (transition) {
90
- that.$element[0].offsetWidth // force reflow
91
- }
92
-
93
- that.$element.addClass('in')
94
-
95
- that.enforceFocus()
96
-
97
- var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
98
-
99
- transition ?
100
- that.$dialog // wait for modal to slide in
101
- .one('bsTransitionEnd', function () {
102
- that.$element.trigger('focus').trigger(e)
103
- })
104
- .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
105
- that.$element.trigger('focus').trigger(e)
106
- })
107
- }
108
-
109
- Modal.prototype.hide = function (e) {
110
- if (e) e.preventDefault()
111
-
112
- e = $.Event('hide.bs.modal')
113
-
114
- this.$element.trigger(e)
115
-
116
- if (!this.isShown || e.isDefaultPrevented()) return
117
-
118
- this.isShown = false
119
-
120
- this.escape()
121
- this.resize()
122
-
123
- $(document).off('focusin.bs.modal')
124
-
125
- this.$element
126
- .removeClass('in')
127
- .off('click.dismiss.bs.modal')
128
- .off('mouseup.dismiss.bs.modal')
129
-
130
- this.$dialog.off('mousedown.dismiss.bs.modal')
131
-
132
- $.support.transition && this.$element.hasClass('fade') ?
133
- this.$element
134
- .one('bsTransitionEnd', $.proxy(this.hideModal, this))
135
- .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
136
- this.hideModal()
137
- }
138
-
139
- Modal.prototype.enforceFocus = function () {
140
- $(document)
141
- .off('focusin.bs.modal') // guard against infinite focus loop
142
- .on('focusin.bs.modal', $.proxy(function (e) {
143
- if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
144
- this.$element.trigger('focus')
145
- }
146
- }, this))
147
- }
148
-
149
- Modal.prototype.escape = function () {
150
- if (this.isShown && this.options.keyboard) {
151
- this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
152
- e.which == 27 && this.hide()
153
- }, this))
154
- } else if (!this.isShown) {
155
- this.$element.off('keydown.dismiss.bs.modal')
156
- }
157
- }
158
-
159
- Modal.prototype.resize = function () {
160
- if (this.isShown) {
161
- $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
162
- } else {
163
- $(window).off('resize.bs.modal')
164
- }
165
- }
166
-
167
- Modal.prototype.hideModal = function () {
168
- var that = this
169
- this.$element.hide()
170
- this.backdrop(function () {
171
- that.$body.removeClass('modal-open')
172
- that.resetAdjustments()
173
- that.resetScrollbar()
174
- that.$element.trigger('hidden.bs.modal')
175
- })
176
- }
177
-
178
- Modal.prototype.removeBackdrop = function () {
179
- this.$backdrop && this.$backdrop.remove()
180
- this.$backdrop = null
181
- }
182
-
183
- Modal.prototype.backdrop = function (callback) {
184
- var that = this
185
- var animate = this.$element.hasClass('fade') ? 'fade' : ''
186
-
187
- if (this.isShown && this.options.backdrop) {
188
- var doAnimate = $.support.transition && animate
189
-
190
- this.$backdrop = $(document.createElement('div'))
191
- .addClass('modal-backdrop ' + animate)
192
- .appendTo(this.$body)
193
-
194
- this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
195
- if (this.ignoreBackdropClick) {
196
- this.ignoreBackdropClick = false
197
- return
198
- }
199
- if (e.target !== e.currentTarget) return
200
- this.options.backdrop == 'static'
201
- ? this.$element[0].focus()
202
- : this.hide()
203
- }, this))
204
-
205
- if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
206
-
207
- this.$backdrop.addClass('in')
208
-
209
- if (!callback) return
210
-
211
- doAnimate ?
212
- this.$backdrop
213
- .one('bsTransitionEnd', callback)
214
- .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
215
- callback()
216
-
217
- } else if (!this.isShown && this.$backdrop) {
218
- this.$backdrop.removeClass('in')
219
-
220
- var callbackRemove = function () {
221
- that.removeBackdrop()
222
- callback && callback()
223
- }
224
- $.support.transition && this.$element.hasClass('fade') ?
225
- this.$backdrop
226
- .one('bsTransitionEnd', callbackRemove)
227
- .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
228
- callbackRemove()
229
-
230
- } else if (callback) {
231
- callback()
232
- }
233
- }
234
-
235
- // these following methods are used to handle overflowing modals
236
-
237
- Modal.prototype.handleUpdate = function () {
238
- this.adjustDialog()
239
- }
240
-
241
- Modal.prototype.adjustDialog = function () {
242
- var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
243
-
244
- this.$element.css({
245
- paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
246
- paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
247
- })
248
- }
249
-
250
- Modal.prototype.resetAdjustments = function () {
251
- this.$element.css({
252
- paddingLeft: '',
253
- paddingRight: ''
254
- })
255
- }
256
-
257
- Modal.prototype.checkScrollbar = function () {
258
- var fullWindowWidth = window.innerWidth
259
- if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
260
- var documentElementRect = document.documentElement.getBoundingClientRect()
261
- fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
262
- }
263
- this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
264
- this.scrollbarWidth = this.measureScrollbar()
265
- }
266
-
267
- Modal.prototype.setScrollbar = function () {
268
- var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
269
- this.originalBodyPad = document.body.style.paddingRight || ''
270
- if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
271
- }
272
-
273
- Modal.prototype.resetScrollbar = function () {
274
- this.$body.css('padding-right', this.originalBodyPad)
275
- }
276
-
277
- Modal.prototype.measureScrollbar = function () { // thx walsh
278
- var scrollDiv = document.createElement('div')
279
- scrollDiv.className = 'modal-scrollbar-measure'
280
- this.$body.append(scrollDiv)
281
- var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
282
- this.$body[0].removeChild(scrollDiv)
283
- return scrollbarWidth
284
- }
285
-
286
-
287
- // MODAL PLUGIN DEFINITION
288
- // =======================
289
-
290
- function Plugin(option, _relatedTarget) {
291
- return this.each(function () {
292
- var $this = $(this)
293
- var data = $this.data('bs.modal')
294
- var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
295
-
296
- if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
297
- if (typeof option == 'string') data[option](_relatedTarget)
298
- else if (options.show) data.show(_relatedTarget)
299
- })
300
- }
301
-
302
- var old = $.fn.modal
303
-
304
- $.fn.modal = Plugin
305
- $.fn.modal.Constructor = Modal
306
-
307
-
308
- // MODAL NO CONFLICT
309
- // =================
310
-
311
- $.fn.modal.noConflict = function () {
312
- $.fn.modal = old
313
- return this
314
- }
315
-
316
-
317
- // MODAL DATA-API
318
- // ==============
319
-
320
- $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
321
- var $this = $(this)
322
- var href = $this.attr('href')
323
- var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
324
- var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
325
-
326
- if ($this.is('a')) e.preventDefault()
327
-
328
- $target.one('show.bs.modal', function (showEvent) {
329
- if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
330
- $target.one('hidden.bs.modal', function () {
331
- $this.is(':visible') && $this.trigger('focus')
332
- })
333
- })
334
- Plugin.call($target, option, this)
335
- })
336
-
337
- }(jQuery);