card 1.92.2 → 1.93.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (965) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +3 -3
  3. data/VERSION +1 -1
  4. data/card.gemspec +1 -1
  5. data/config/initializers/01_core_extensions/array.rb +1 -1
  6. data/config/initializers/01_core_extensions/object.rb +9 -0
  7. data/config/initializers/01_core_extensions/persistent_identifiers.rb +1 -1
  8. data/config/initializers/02_patches/action_dispatch.rb +1 -0
  9. data/config/initializers/02_patches/active_record.rb +42 -0
  10. data/config/initializers/02_patches/active_support.rb +13 -0
  11. data/config/initializers/deck_config.rb +3 -0
  12. data/config/initializers/patches.rb +37 -6
  13. data/config/locales/de.yml +1 -3
  14. data/config/locales/en.yml +1 -3
  15. data/db/migrate_core_cards/20120611203506_rails_inflection_updates.rb +3 -3
  16. data/db/migrate_core_cards/20130823192433_add_style_cards.rb +1 -1
  17. data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +1 -1
  18. data/db/migrate_core_cards/20140629222005_add_email_cards.rb +4 -4
  19. data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +1 -1
  20. data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +1 -1
  21. data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +1 -1
  22. data/db/migrate_core_cards/20150429090551_search_card_context.rb +2 -2
  23. data/db/migrate_core_cards/20150501010515_responsive_sidebar.rb +1 -1
  24. data/db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb +2 -2
  25. data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +2 -2
  26. data/db/migrate_core_cards/20160811115836_rename_stats_to_admin.rb +1 -1
  27. data/db/migrate_core_cards/20160914132636_fix_mod_files.rb +3 -3
  28. data/db/migrate_core_cards/20170830210517_correct_signup_success_message.rb +2 -2
  29. data/db/migrate_core_cards/data/cards.yml +2 -2
  30. data/db/migrate_core_cards/data/cards/*header +1 -1
  31. data/lib/card.rb +53 -34
  32. data/lib/card/act_manager.rb +64 -10
  33. data/lib/card/act_manager/stage_director.rb +13 -2
  34. data/lib/card/act_manager/stage_director/phases.rb +6 -4
  35. data/lib/card/auth.rb +3 -1
  36. data/lib/card/cache.rb +8 -2
  37. data/lib/card/cache/persistent.rb +23 -10
  38. data/lib/card/codename.rb +59 -18
  39. data/lib/card/dirty.rb +39 -0
  40. data/lib/card/env/location.rb +1 -1
  41. data/lib/card/env/location_history.rb +1 -1
  42. data/lib/card/env/success.rb +1 -1
  43. data/lib/card/error.rb +3 -0
  44. data/lib/card/format.rb +55 -21
  45. data/lib/card/format/content.rb +1 -1
  46. data/lib/card/format/context_names.rb +2 -2
  47. data/lib/card/format/nest.rb +2 -2
  48. data/lib/card/format/nest/fetch.rb +1 -1
  49. data/lib/card/format/nest/subformat.rb +1 -1
  50. data/lib/card/format/render.rb +4 -18
  51. data/lib/card/migration.rb +1 -1
  52. data/lib/card/migration/import.rb +1 -1
  53. data/lib/card/migration/import/import_data.rb +5 -12
  54. data/lib/card/migration/import/import_data/card_attributes.rb +3 -4
  55. data/lib/card/mod.rb +4 -3
  56. data/lib/card/mod/dirs.rb +21 -10
  57. data/lib/card/mod/loader.rb +1 -1
  58. data/lib/card/model/save_helper.rb +1 -1
  59. data/lib/card/name.rb +8 -6
  60. data/lib/card/name/fields_and_traits.rb +5 -10
  61. data/lib/card/query.rb +1 -1
  62. data/lib/card/reference.rb +1 -1
  63. data/lib/card/set.rb +7 -14
  64. data/lib/card/set/advanced_api.rb +1 -0
  65. data/lib/card/set/event.rb +19 -109
  66. data/lib/card/set/event/delayed_event.rb +104 -0
  67. data/lib/card/set/format.rb +2 -2
  68. data/lib/card/set_pattern.rb +4 -4
  69. data/lib/card/subcards.rb +22 -35
  70. data/lib/card/tasks/card.rake +1 -2
  71. data/lib/card/view.rb +1 -2
  72. data/lib/card/view/cache.rb +1 -1
  73. data/lib/card/view/cache_action.rb +1 -1
  74. data/lib/card/view/options.rb +1 -1
  75. data/lib/card/view/stub.rb +5 -1
  76. data/lib/cardio.rb +50 -22
  77. data/mod/Modfile +1 -0
  78. data/mod/account/set/all/account.rb +2 -2
  79. data/mod/account/set/right/account.rb +4 -2
  80. data/mod/account/set/right/email.rb +1 -1
  81. data/mod/account/set/self/account_links.rb +2 -2
  82. data/mod/account/set/self/signin.rb +3 -3
  83. data/mod/account/spec/set/right/account_spec.rb +2 -2
  84. data/mod/account/spec/set/right/email_spec.rb +1 -1
  85. data/mod/account/spec/set/right/password_spec.rb +1 -1
  86. data/mod/account/spec/set/right/salt_spec.rb +1 -1
  87. data/mod/account/spec/set/type/signup_spec.rb +1 -1
  88. data/mod/basic_formats/format/css_format.rb +1 -2
  89. data/mod/basic_formats/format/csv_format.rb +1 -1
  90. data/mod/basic_formats/format/js_format.rb +4 -0
  91. data/mod/basic_formats/set/all/all_css.rb +3 -3
  92. data/mod/basic_formats/set/all/all_js.rb +1 -1
  93. data/mod/basic_formats/set/all/base.rb +5 -5
  94. data/mod/basic_formats/set/all/json.rb +4 -4
  95. data/mod/basic_formats/set/all/rss.rb +3 -3
  96. data/mod/basic_formats/set/self/head.rb +12 -7
  97. data/mod/bootstrap/db/migrate_cards/20170719163710_update_bootswatch_themes_to_4_beta.rb +115 -0
  98. data/mod/bootstrap/db/migrate_cards/20170726145012_select2.rb +7 -7
  99. data/mod/bootstrap/lib/bootstrap/component/panel.rb +1 -1
  100. data/mod/bootstrap/lib/javascript/script_load_select2.js.coffee +2 -0
  101. data/mod/bootstrap/lib/stylesheets/bootstrap_cards.scss +2 -8
  102. data/mod/bootstrap/lib/stylesheets/style_select2_bootstrap.scss +546 -628
  103. data/mod/bootstrap/set/abstract/bootstrap_code_file.rb +9 -6
  104. data/mod/bootstrap/set/all/bootstrap/accordion.rb +3 -3
  105. data/mod/bootstrap/set/all/bootstrap/helper.rb +58 -15
  106. data/mod/bootstrap/set/all/bootstrap/tabs.rb +2 -2
  107. data/mod/bootstrap/set/all/bootstrap/wrapper.rb +1 -1
  108. data/mod/bootstrap/set/self/bootstrap_js.rb +7 -1
  109. data/mod/bootstrap/set/self/bootswatch_shared.rb +8 -17
  110. data/mod/bootstrap/set/self/script_select2.rb +9 -0
  111. data/mod/bootstrap/set/self/style_select2.rb +1 -1
  112. data/mod/bootstrap/set/self/style_select2_bootstrap.rb +1 -0
  113. data/mod/bootstrap/vendor/bootstrap/.editorconfig +17 -0
  114. data/mod/bootstrap/vendor/bootstrap/.gitattributes +15 -0
  115. data/mod/bootstrap/vendor/bootstrap/.gitignore +41 -0
  116. data/mod/bootstrap/vendor/bootstrap/.hound.yml +12 -0
  117. data/mod/bootstrap/vendor/bootstrap/.travis.yml +45 -0
  118. data/mod/bootstrap/vendor/bootstrap/CHANGELOG.md +5 -0
  119. data/mod/bootstrap/vendor/bootstrap/CNAME +1 -0
  120. data/mod/bootstrap/vendor/bootstrap/CONTRIBUTING.md +270 -0
  121. data/mod/bootstrap/vendor/bootstrap/Gemfile +6 -0
  122. data/mod/bootstrap/vendor/bootstrap/Gemfile.lock +49 -0
  123. data/mod/bootstrap/vendor/bootstrap/Gruntfile.js +511 -0
  124. data/mod/bootstrap/vendor/bootstrap/ISSUE_TEMPLATE.md +22 -0
  125. data/mod/bootstrap/vendor/bootstrap/LICENSE +21 -0
  126. data/mod/bootstrap/vendor/bootstrap/README.md +142 -0
  127. data/mod/bootstrap/vendor/bootstrap/_config.yml +42 -0
  128. data/mod/bootstrap/vendor/bootstrap/bower.json +34 -0
  129. data/mod/bootstrap/vendor/bootstrap/composer.json +37 -0
  130. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.css +587 -0
  131. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.css.map +0 -0
  132. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.min.css +6 -0
  133. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.min.css.map +0 -0
  134. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.css +6757 -0
  135. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.css.map +0 -0
  136. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.min.css +6 -0
  137. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.min.css.map +0 -0
  138. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  139. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  140. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  141. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  142. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  143. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.js +2377 -0
  144. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.min.js +7 -0
  145. data/mod/bootstrap/vendor/bootstrap/dist/js/npm.js +13 -0
  146. data/mod/bootstrap/vendor/bootstrap/docs/LICENSE +319 -0
  147. data/mod/bootstrap/vendor/bootstrap/docs/_data/browser-bugs.yml +433 -0
  148. data/mod/bootstrap/vendor/bootstrap/docs/_data/browser-features.yml +109 -0
  149. data/mod/bootstrap/vendor/bootstrap/docs/_data/core-team.yml +27 -0
  150. data/mod/bootstrap/vendor/bootstrap/docs/_data/glyphicons.yml +266 -0
  151. data/mod/bootstrap/vendor/bootstrap/docs/_data/sass-team.yml +7 -0
  152. data/mod/bootstrap/vendor/bootstrap/docs/_data/showcase.yml +19 -0
  153. data/mod/bootstrap/vendor/bootstrap/docs/_data/translations.yml +64 -0
  154. data/mod/bootstrap/vendor/bootstrap/docs/_includes/ads.html +1 -0
  155. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/alerts.html +89 -0
  156. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/badges.html +45 -0
  157. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/breadcrumbs.html +27 -0
  158. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/button-dropdowns.html +321 -0
  159. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/button-groups.html +268 -0
  160. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/dropdowns.html +156 -0
  161. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/glyphicons.html +91 -0
  162. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/input-groups.html +365 -0
  163. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/jumbotron.html +27 -0
  164. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/labels.html +40 -0
  165. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/list-group.html +188 -0
  166. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/media.html +207 -0
  167. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/navbar.html +461 -0
  168. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/navs.html +189 -0
  169. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/page-header.html +15 -0
  170. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/pagination.html +202 -0
  171. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/panels.html +279 -0
  172. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/progress-bars.html +214 -0
  173. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/responsive-embed.html +23 -0
  174. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/thumbnails.html +94 -0
  175. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/wells.html +33 -0
  176. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/buttons.html +189 -0
  177. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/code.html +52 -0
  178. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/forms.html +1029 -0
  179. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/grid.html +560 -0
  180. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/helpers.html +207 -0
  181. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/images.html +31 -0
  182. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/less.html +499 -0
  183. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/overview.html +52 -0
  184. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/responsive-utilities.html +258 -0
  185. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/sass.html +52 -0
  186. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/tables.html +467 -0
  187. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/type.html +461 -0
  188. data/mod/bootstrap/vendor/bootstrap/docs/_includes/customizer-variables.html +1892 -0
  189. data/mod/bootstrap/vendor/bootstrap/docs/_includes/footer.html +67 -0
  190. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/accessibility.html +37 -0
  191. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/browser-device-support.html +237 -0
  192. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/community.html +13 -0
  193. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/disabling-responsiveness.html +22 -0
  194. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/download.html +63 -0
  195. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/examples.html +161 -0
  196. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/grunt.html +35 -0
  197. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/license.html +34 -0
  198. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/template.html +37 -0
  199. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/third-party-support.html +51 -0
  200. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/tools.html +6 -0
  201. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/translations.html +12 -0
  202. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/whats-included.html +55 -0
  203. data/mod/bootstrap/vendor/bootstrap/docs/_includes/header.html +58 -0
  204. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/affix.html +129 -0
  205. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/alerts.html +73 -0
  206. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/buttons.html +139 -0
  207. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/carousel.html +260 -0
  208. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/collapse.html +277 -0
  209. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/dropdowns.html +201 -0
  210. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/modal.html +520 -0
  211. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/overview.html +86 -0
  212. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/popovers.html +309 -0
  213. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/scrollspy.html +151 -0
  214. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/tabs.html +147 -0
  215. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/tooltips.html +276 -0
  216. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/transitions.html +15 -0
  217. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/about.html +9 -0
  218. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/components.html +146 -0
  219. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/css.html +136 -0
  220. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/customize.html +47 -0
  221. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/getting-started.html +76 -0
  222. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/javascript.html +124 -0
  223. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/main.html +37 -0
  224. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/migration.html +12 -0
  225. data/mod/bootstrap/vendor/bootstrap/docs/_layouts/default.html +65 -0
  226. data/mod/bootstrap/vendor/bootstrap/docs/_layouts/home.html +19 -0
  227. data/mod/bootstrap/vendor/bootstrap/docs/_plugins/bridge.rb +9 -0
  228. data/mod/bootstrap/vendor/bootstrap/docs/_plugins/bugify.rb +26 -0
  229. data/mod/bootstrap/vendor/bootstrap/docs/_pug/customizer-nav.pug +17 -0
  230. data/mod/bootstrap/vendor/bootstrap/docs/_pug/customizer-variables.pug +25 -0
  231. data/mod/bootstrap/vendor/bootstrap/docs/about.html +127 -0
  232. data/mod/bootstrap/vendor/bootstrap/docs/apple-touch-icon.png +0 -0
  233. data/mod/bootstrap/vendor/bootstrap/docs/assets/brand/bootstrap-outline.svg +20 -0
  234. data/mod/bootstrap/vendor/bootstrap/docs/assets/brand/bootstrap-punchout.svg +18 -0
  235. data/mod/bootstrap/vendor/bootstrap/docs/assets/brand/bootstrap-solid.svg +17 -0
  236. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/docs.min.css +11 -0
  237. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/docs.min.css.map +0 -0
  238. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/ie10-viewport-bug-workaround.css +13 -0
  239. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/src/docs.css +1632 -0
  240. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/src/pygments-manni.css +66 -0
  241. data/mod/bootstrap/vendor/bootstrap/docs/assets/flash/ZeroClipboard.swf +0 -0
  242. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/components.png +0 -0
  243. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/devices.png +0 -0
  244. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-lyft.jpg +0 -0
  245. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-newsweek.jpg +0 -0
  246. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-riot.jpg +0 -0
  247. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-vogue.jpg +0 -0
  248. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/sass-less.png +0 -0
  249. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/customize.min.js +91 -0
  250. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/docs.min.js +26 -0
  251. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/ie-emulation-modes-warning.js +51 -0
  252. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/ie10-viewport-bug-workaround.js +23 -0
  253. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/ie8-responsive-file-warning.js +13 -0
  254. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/raw-files.min.js +8 -0
  255. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/src/application.js +183 -0
  256. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/src/customizer.js +520 -0
  257. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/Blob.js +211 -0
  258. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/FileSaver.js +248 -0
  259. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/ZeroClipboard.min.js +9 -0
  260. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/anchor.min.js +6 -0
  261. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/autoprefixer.js +21114 -0
  262. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/holder.min.js +12 -0
  263. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/jquery.min.js +5 -0
  264. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/jszip.min.js +14 -0
  265. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/less.min.js +16 -0
  266. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/uglify.min.js +6 -0
  267. data/mod/bootstrap/vendor/bootstrap/docs/browser-bugs.html +75 -0
  268. data/mod/bootstrap/vendor/bootstrap/docs/components.html +29 -0
  269. data/mod/bootstrap/vendor/bootstrap/docs/css.html +20 -0
  270. data/mod/bootstrap/vendor/bootstrap/docs/customize.html +385 -0
  271. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.css +587 -0
  272. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.css.map +0 -0
  273. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.min.css +6 -0
  274. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.min.css.map +0 -0
  275. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.css +6757 -0
  276. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.css.map +0 -0
  277. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.min.css +6 -0
  278. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.min.css.map +0 -0
  279. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  280. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  281. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  282. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  283. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  284. data/mod/bootstrap/vendor/bootstrap/docs/dist/js/bootstrap.js +2377 -0
  285. data/mod/bootstrap/vendor/bootstrap/docs/dist/js/bootstrap.min.js +7 -0
  286. data/mod/bootstrap/vendor/bootstrap/docs/dist/js/npm.js +13 -0
  287. data/mod/bootstrap/vendor/bootstrap/docs/examples/blog/blog.css +166 -0
  288. data/mod/bootstrap/vendor/bootstrap/docs/examples/blog/index.html +180 -0
  289. data/mod/bootstrap/vendor/bootstrap/docs/examples/carousel/carousel.css +134 -0
  290. data/mod/bootstrap/vendor/bootstrap/docs/examples/carousel/index.html +220 -0
  291. data/mod/bootstrap/vendor/bootstrap/docs/examples/cover/cover.css +163 -0
  292. data/mod/bootstrap/vendor/bootstrap/docs/examples/cover/index.html +84 -0
  293. data/mod/bootstrap/vendor/bootstrap/docs/examples/dashboard/dashboard.css +105 -0
  294. data/mod/bootstrap/vendor/bootstrap/docs/examples/dashboard/index.html +252 -0
  295. data/mod/bootstrap/vendor/bootstrap/docs/examples/grid/grid.css +23 -0
  296. data/mod/bootstrap/vendor/bootstrap/docs/examples/grid/index.html +156 -0
  297. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron-narrow/index.html +88 -0
  298. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron-narrow/jumbotron-narrow.css +79 -0
  299. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron/index.html +107 -0
  300. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron/jumbotron.css +5 -0
  301. data/mod/bootstrap/vendor/bootstrap/docs/examples/justified-nav/index.html +92 -0
  302. data/mod/bootstrap/vendor/bootstrap/docs/examples/justified-nav/justified-nav.css +88 -0
  303. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-fixed-top/index.html +99 -0
  304. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-fixed-top/navbar-fixed-top.css +4 -0
  305. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-static-top/index.html +100 -0
  306. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-static-top/navbar-static-top.css +7 -0
  307. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar/index.html +98 -0
  308. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar/navbar.css +8 -0
  309. data/mod/bootstrap/vendor/bootstrap/docs/examples/non-responsive/index.html +115 -0
  310. data/mod/bootstrap/vendor/bootstrap/docs/examples/non-responsive/non-responsive.css +262 -0
  311. data/mod/bootstrap/vendor/bootstrap/docs/examples/offcanvas/index.html +137 -0
  312. data/mod/bootstrap/vendor/bootstrap/docs/examples/offcanvas/offcanvas.css +59 -0
  313. data/mod/bootstrap/vendor/bootstrap/docs/examples/offcanvas/offcanvas.js +5 -0
  314. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/blog.jpg +0 -0
  315. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/carousel.jpg +0 -0
  316. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/cover.jpg +0 -0
  317. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/dashboard.jpg +0 -0
  318. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/equal-height-columns.jpg +0 -0
  319. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/grid.jpg +0 -0
  320. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/jumbotron-narrow.jpg +0 -0
  321. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/jumbotron.jpg +0 -0
  322. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/justified-nav.jpg +0 -0
  323. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/navbar-fixed.jpg +0 -0
  324. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/navbar-static.jpg +0 -0
  325. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/navbar.jpg +0 -0
  326. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/non-responsive.jpg +0 -0
  327. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/offcanvas.jpg +0 -0
  328. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/sign-in.jpg +0 -0
  329. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/starter-template.jpg +0 -0
  330. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/sticky-footer-navbar.jpg +0 -0
  331. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/sticky-footer.jpg +0 -0
  332. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/theme.jpg +0 -0
  333. data/mod/bootstrap/vendor/bootstrap/docs/examples/signin/index.html +58 -0
  334. data/mod/bootstrap/vendor/bootstrap/docs/examples/signin/signin.css +40 -0
  335. data/mod/bootstrap/vendor/bootstrap/docs/examples/starter-template/index.html +76 -0
  336. data/mod/bootstrap/vendor/bootstrap/docs/examples/starter-template/starter-template.css +7 -0
  337. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer-navbar/index.html +95 -0
  338. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer-navbar/sticky-footer-navbar.css +39 -0
  339. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer/index.html +55 -0
  340. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer/sticky-footer.css +32 -0
  341. data/mod/bootstrap/vendor/bootstrap/docs/examples/theme/index.html +644 -0
  342. data/mod/bootstrap/vendor/bootstrap/docs/examples/theme/theme.css +18 -0
  343. data/mod/bootstrap/vendor/bootstrap/docs/examples/tooltip-viewport/index.html +62 -0
  344. data/mod/bootstrap/vendor/bootstrap/docs/examples/tooltip-viewport/tooltip-viewport.css +26 -0
  345. data/mod/bootstrap/vendor/bootstrap/docs/examples/tooltip-viewport/tooltip-viewport.js +18 -0
  346. data/mod/bootstrap/vendor/bootstrap/docs/favicon.ico +0 -0
  347. data/mod/bootstrap/vendor/bootstrap/docs/getting-started.html +28 -0
  348. data/mod/bootstrap/vendor/bootstrap/docs/index.html +73 -0
  349. data/mod/bootstrap/vendor/bootstrap/docs/javascript.html +21 -0
  350. data/mod/bootstrap/vendor/bootstrap/docs/migration.html +445 -0
  351. data/mod/bootstrap/vendor/bootstrap/docs/robots.txt +9 -0
  352. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  353. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  354. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  355. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  356. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  357. data/mod/bootstrap/vendor/bootstrap/grunt/.jshintrc +7 -0
  358. data/mod/bootstrap/vendor/bootstrap/grunt/bs-commonjs-generator.js +30 -0
  359. data/mod/bootstrap/vendor/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
  360. data/mod/bootstrap/vendor/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
  361. data/mod/bootstrap/vendor/bootstrap/grunt/bs-raw-files-generator.js +44 -0
  362. data/mod/bootstrap/vendor/bootstrap/grunt/change-version.js +109 -0
  363. data/mod/bootstrap/vendor/bootstrap/grunt/configBridge.json +46 -0
  364. data/mod/bootstrap/vendor/bootstrap/grunt/npm-shrinkwrap.json +2679 -0
  365. data/mod/bootstrap/vendor/bootstrap/grunt/sauce_browsers.yml +82 -0
  366. data/mod/bootstrap/vendor/bootstrap/js/.jscsrc +42 -0
  367. data/mod/bootstrap/vendor/bootstrap/js/.jshintrc +15 -0
  368. data/mod/bootstrap/vendor/bootstrap/js/affix.js +162 -0
  369. data/mod/bootstrap/vendor/bootstrap/js/alert.js +94 -0
  370. data/mod/bootstrap/vendor/bootstrap/js/button.js +125 -0
  371. data/mod/bootstrap/vendor/bootstrap/js/carousel.js +239 -0
  372. data/mod/bootstrap/vendor/bootstrap/js/collapse.js +212 -0
  373. data/mod/bootstrap/vendor/bootstrap/js/dropdown.js +165 -0
  374. data/mod/bootstrap/vendor/bootstrap/js/modal.js +339 -0
  375. data/mod/bootstrap/vendor/bootstrap/js/popover.js +108 -0
  376. data/mod/bootstrap/vendor/bootstrap/js/scrollspy.js +172 -0
  377. data/mod/bootstrap/vendor/bootstrap/js/tab.js +155 -0
  378. data/mod/bootstrap/vendor/bootstrap/js/tests/README.md +62 -0
  379. data/mod/bootstrap/vendor/bootstrap/js/tests/index.html +169 -0
  380. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/.jshintrc +6 -0
  381. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/affix.js +107 -0
  382. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/alert.js +78 -0
  383. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/button.js +168 -0
  384. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/carousel.js +718 -0
  385. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/collapse.js +443 -0
  386. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/dropdown.js +423 -0
  387. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/modal.js +377 -0
  388. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/phantom.js +72 -0
  389. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/popover.js +290 -0
  390. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/scrollspy.js +278 -0
  391. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/tab.js +216 -0
  392. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/tooltip.js +1325 -0
  393. data/mod/bootstrap/vendor/bootstrap/js/tests/vendor/jquery.min.js +5 -0
  394. data/mod/bootstrap/vendor/bootstrap/js/tests/vendor/qunit.css +305 -0
  395. data/mod/bootstrap/vendor/bootstrap/js/tests/vendor/qunit.js +4204 -0
  396. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/affix-with-sticky-footer.html +317 -0
  397. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/affix.html +306 -0
  398. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/alert.html +48 -0
  399. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/button.html +79 -0
  400. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/carousel.html +58 -0
  401. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/collapse.html +78 -0
  402. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/dropdown.html +108 -0
  403. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/modal.html +205 -0
  404. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/popover.html +54 -0
  405. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/scrollspy.html +109 -0
  406. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/tab.html +172 -0
  407. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/tooltip.html +50 -0
  408. data/mod/bootstrap/vendor/bootstrap/js/tooltip.js +520 -0
  409. data/mod/bootstrap/vendor/bootstrap/js/transition.js +59 -0
  410. data/mod/bootstrap/vendor/bootstrap/less/.csscomb.json +304 -0
  411. data/mod/bootstrap/vendor/bootstrap/less/.csslintrc +19 -0
  412. data/mod/bootstrap/vendor/bootstrap/less/alerts.less +73 -0
  413. data/mod/bootstrap/vendor/bootstrap/less/badges.less +66 -0
  414. data/mod/bootstrap/vendor/bootstrap/less/bootstrap.less +56 -0
  415. data/mod/bootstrap/vendor/bootstrap/less/breadcrumbs.less +26 -0
  416. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/_button-group.scss → vendor/bootstrap/less/button-groups.less} +100 -58
  417. data/mod/bootstrap/vendor/bootstrap/less/buttons.less +166 -0
  418. data/mod/bootstrap/vendor/bootstrap/less/carousel.less +270 -0
  419. data/mod/bootstrap/vendor/bootstrap/less/close.less +34 -0
  420. data/mod/bootstrap/vendor/bootstrap/less/code.less +69 -0
  421. data/mod/bootstrap/vendor/bootstrap/less/component-animations.less +33 -0
  422. data/mod/bootstrap/vendor/bootstrap/less/dropdowns.less +216 -0
  423. data/mod/bootstrap/vendor/bootstrap/less/forms.less +613 -0
  424. data/mod/bootstrap/vendor/bootstrap/less/glyphicons.less +305 -0
  425. data/mod/bootstrap/vendor/bootstrap/less/grid.less +84 -0
  426. data/mod/bootstrap/vendor/bootstrap/less/input-groups.less +171 -0
  427. data/mod/bootstrap/vendor/bootstrap/less/jumbotron.less +54 -0
  428. data/mod/bootstrap/vendor/bootstrap/less/labels.less +64 -0
  429. data/mod/bootstrap/vendor/bootstrap/less/list-group.less +130 -0
  430. data/mod/bootstrap/vendor/bootstrap/less/media.less +66 -0
  431. data/mod/bootstrap/vendor/bootstrap/less/mixins.less +40 -0
  432. data/mod/bootstrap/vendor/bootstrap/less/mixins/alerts.less +14 -0
  433. data/mod/bootstrap/vendor/bootstrap/less/mixins/background-variant.less +9 -0
  434. data/mod/bootstrap/vendor/bootstrap/less/mixins/border-radius.less +18 -0
  435. data/mod/bootstrap/vendor/bootstrap/less/mixins/buttons.less +65 -0
  436. data/mod/bootstrap/vendor/bootstrap/less/mixins/center-block.less +7 -0
  437. data/mod/bootstrap/vendor/bootstrap/less/mixins/clearfix.less +22 -0
  438. data/mod/bootstrap/vendor/bootstrap/less/mixins/forms.less +85 -0
  439. data/mod/bootstrap/vendor/bootstrap/less/mixins/gradients.less +59 -0
  440. data/mod/bootstrap/vendor/bootstrap/less/mixins/grid-framework.less +91 -0
  441. data/mod/bootstrap/vendor/bootstrap/less/mixins/grid.less +122 -0
  442. data/mod/bootstrap/vendor/bootstrap/less/mixins/hide-text.less +21 -0
  443. data/mod/bootstrap/vendor/bootstrap/less/mixins/image.less +33 -0
  444. data/mod/bootstrap/vendor/bootstrap/less/mixins/labels.less +12 -0
  445. data/mod/bootstrap/vendor/bootstrap/less/mixins/list-group.less +30 -0
  446. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_nav-divider.scss → vendor/bootstrap/less/mixins/nav-divider.less} +3 -3
  447. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_navbar-align.scss → vendor/bootstrap/less/mixins/nav-vertical-align.less} +4 -4
  448. data/mod/bootstrap/vendor/bootstrap/less/mixins/opacity.less +8 -0
  449. data/mod/bootstrap/vendor/bootstrap/less/mixins/pagination.less +24 -0
  450. data/mod/bootstrap/vendor/bootstrap/less/mixins/panels.less +24 -0
  451. data/mod/bootstrap/vendor/bootstrap/less/mixins/progress-bar.less +10 -0
  452. data/mod/bootstrap/vendor/bootstrap/less/mixins/reset-filter.less +8 -0
  453. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_reset-text.scss → vendor/bootstrap/less/mixins/reset-text.less} +6 -5
  454. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_resize.scss → vendor/bootstrap/less/mixins/resize.less} +2 -2
  455. data/mod/bootstrap/vendor/bootstrap/less/mixins/responsive-visibility.less +15 -0
  456. data/mod/bootstrap/vendor/bootstrap/less/mixins/size.less +10 -0
  457. data/mod/bootstrap/vendor/bootstrap/less/mixins/tab-focus.less +9 -0
  458. data/mod/bootstrap/vendor/bootstrap/less/mixins/table-row.less +28 -0
  459. data/mod/bootstrap/vendor/bootstrap/less/mixins/text-emphasis.less +9 -0
  460. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_text-truncate.scss → vendor/bootstrap/less/mixins/text-overflow.less} +3 -3
  461. data/mod/bootstrap/vendor/bootstrap/less/mixins/vendor-prefixes.less +227 -0
  462. data/mod/bootstrap/vendor/bootstrap/less/modals.less +150 -0
  463. data/mod/bootstrap/vendor/bootstrap/less/navbar.less +660 -0
  464. data/mod/bootstrap/vendor/bootstrap/less/navs.less +242 -0
  465. data/mod/bootstrap/vendor/bootstrap/less/normalize.less +424 -0
  466. data/mod/bootstrap/vendor/bootstrap/less/pager.less +54 -0
  467. data/mod/bootstrap/vendor/bootstrap/less/pagination.less +89 -0
  468. data/mod/bootstrap/vendor/bootstrap/less/panels.less +271 -0
  469. data/mod/bootstrap/vendor/bootstrap/less/popovers.less +131 -0
  470. data/mod/bootstrap/vendor/bootstrap/less/print.less +101 -0
  471. data/mod/bootstrap/vendor/bootstrap/less/progress-bars.less +87 -0
  472. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/_responsive-embed.scss → vendor/bootstrap/less/responsive-embed.less} +9 -26
  473. data/mod/bootstrap/vendor/bootstrap/less/responsive-utilities.less +194 -0
  474. data/mod/bootstrap/vendor/bootstrap/less/scaffolding.less +161 -0
  475. data/mod/bootstrap/vendor/bootstrap/less/tables.less +234 -0
  476. data/mod/bootstrap/vendor/bootstrap/less/theme.less +291 -0
  477. data/mod/bootstrap/vendor/bootstrap/less/thumbnails.less +36 -0
  478. data/mod/bootstrap/vendor/bootstrap/less/tooltip.less +101 -0
  479. data/mod/bootstrap/vendor/bootstrap/less/type.less +302 -0
  480. data/mod/bootstrap/vendor/bootstrap/less/utilities.less +55 -0
  481. data/mod/bootstrap/vendor/bootstrap/less/variables.less +869 -0
  482. data/mod/bootstrap/vendor/bootstrap/less/wells.less +29 -0
  483. data/mod/bootstrap/vendor/bootstrap/nuget/MyGet.ps1 +8 -0
  484. data/mod/bootstrap/vendor/bootstrap/nuget/bootstrap.less.nuspec +28 -0
  485. data/mod/bootstrap/vendor/bootstrap/nuget/bootstrap.nuspec +28 -0
  486. data/mod/bootstrap/vendor/bootstrap/package.js +32 -0
  487. data/mod/bootstrap/vendor/bootstrap/package.json +89 -0
  488. data/mod/bootstrap/vendor/bootswatch/README.md +63 -0
  489. data/mod/bootstrap/vendor/bootswatch/swatchmaker/README.md +1 -0
  490. data/mod/bootstrap/vendor/select2/.editorconfig +6 -0
  491. data/mod/bootstrap/vendor/select2/.github/CONTRIBUTING.md +203 -0
  492. data/mod/bootstrap/vendor/select2/.github/ISSUE_TEMPLATE.md +20 -0
  493. data/mod/bootstrap/vendor/select2/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  494. data/mod/bootstrap/vendor/select2/.gitignore +3 -0
  495. data/mod/bootstrap/vendor/select2/.jshintignore +4 -0
  496. data/mod/bootstrap/vendor/select2/.jshintrc +25 -0
  497. data/mod/bootstrap/vendor/select2/.travis.yml +22 -0
  498. data/mod/bootstrap/vendor/select2/CHANGELOG.md +272 -0
  499. data/mod/bootstrap/vendor/select2/Gruntfile.js +380 -0
  500. data/mod/bootstrap/vendor/select2/LICENSE.md +21 -0
  501. data/mod/bootstrap/vendor/select2/README.md +123 -0
  502. data/mod/bootstrap/vendor/select2/bower.json +13 -0
  503. data/mod/bootstrap/vendor/select2/component.json +19 -0
  504. data/mod/bootstrap/vendor/select2/composer.json +25 -0
  505. data/mod/bootstrap/{lib/stylesheets/style_select2.css → vendor/select2/dist/css/select2.css} +0 -0
  506. data/mod/bootstrap/{lib/stylesheets → vendor/select2/dist/css}/select2.min.css +0 -0
  507. data/mod/bootstrap/vendor/select2/dist/js/i18n/af.js +3 -0
  508. data/mod/bootstrap/vendor/select2/dist/js/i18n/ar.js +3 -0
  509. data/mod/bootstrap/vendor/select2/dist/js/i18n/az.js +3 -0
  510. data/mod/bootstrap/vendor/select2/dist/js/i18n/bg.js +3 -0
  511. data/mod/bootstrap/vendor/select2/dist/js/i18n/bs.js +3 -0
  512. data/mod/bootstrap/vendor/select2/dist/js/i18n/ca.js +3 -0
  513. data/mod/bootstrap/vendor/select2/dist/js/i18n/cs.js +3 -0
  514. data/mod/bootstrap/vendor/select2/dist/js/i18n/da.js +3 -0
  515. data/mod/bootstrap/vendor/select2/dist/js/i18n/de.js +3 -0
  516. data/mod/bootstrap/vendor/select2/dist/js/i18n/dsb.js +3 -0
  517. data/mod/bootstrap/vendor/select2/dist/js/i18n/el.js +3 -0
  518. data/mod/bootstrap/vendor/select2/dist/js/i18n/en.js +3 -0
  519. data/mod/bootstrap/vendor/select2/dist/js/i18n/es.js +3 -0
  520. data/mod/bootstrap/vendor/select2/dist/js/i18n/et.js +3 -0
  521. data/mod/bootstrap/vendor/select2/dist/js/i18n/eu.js +3 -0
  522. data/mod/bootstrap/vendor/select2/dist/js/i18n/fa.js +3 -0
  523. data/mod/bootstrap/vendor/select2/dist/js/i18n/fi.js +3 -0
  524. data/mod/bootstrap/vendor/select2/dist/js/i18n/fr.js +3 -0
  525. data/mod/bootstrap/vendor/select2/dist/js/i18n/gl.js +3 -0
  526. data/mod/bootstrap/vendor/select2/dist/js/i18n/he.js +3 -0
  527. data/mod/bootstrap/vendor/select2/dist/js/i18n/hi.js +3 -0
  528. data/mod/bootstrap/vendor/select2/dist/js/i18n/hr.js +3 -0
  529. data/mod/bootstrap/vendor/select2/dist/js/i18n/hsb.js +3 -0
  530. data/mod/bootstrap/vendor/select2/dist/js/i18n/hu.js +3 -0
  531. data/mod/bootstrap/vendor/select2/dist/js/i18n/hy.js +3 -0
  532. data/mod/bootstrap/vendor/select2/dist/js/i18n/id.js +3 -0
  533. data/mod/bootstrap/vendor/select2/dist/js/i18n/is.js +3 -0
  534. data/mod/bootstrap/vendor/select2/dist/js/i18n/it.js +3 -0
  535. data/mod/bootstrap/vendor/select2/dist/js/i18n/ja.js +3 -0
  536. data/mod/bootstrap/vendor/select2/dist/js/i18n/km.js +3 -0
  537. data/mod/bootstrap/vendor/select2/dist/js/i18n/ko.js +3 -0
  538. data/mod/bootstrap/vendor/select2/dist/js/i18n/lt.js +3 -0
  539. data/mod/bootstrap/vendor/select2/dist/js/i18n/lv.js +3 -0
  540. data/mod/bootstrap/vendor/select2/dist/js/i18n/mk.js +3 -0
  541. data/mod/bootstrap/vendor/select2/dist/js/i18n/ms.js +3 -0
  542. data/mod/bootstrap/vendor/select2/dist/js/i18n/nb.js +3 -0
  543. data/mod/bootstrap/vendor/select2/dist/js/i18n/nl.js +3 -0
  544. data/mod/bootstrap/vendor/select2/dist/js/i18n/pl.js +3 -0
  545. data/mod/bootstrap/vendor/select2/dist/js/i18n/ps.js +3 -0
  546. data/mod/bootstrap/vendor/select2/dist/js/i18n/pt-BR.js +3 -0
  547. data/mod/bootstrap/vendor/select2/dist/js/i18n/pt.js +3 -0
  548. data/mod/bootstrap/vendor/select2/dist/js/i18n/ro.js +3 -0
  549. data/mod/bootstrap/vendor/select2/dist/js/i18n/ru.js +3 -0
  550. data/mod/bootstrap/vendor/select2/dist/js/i18n/sk.js +3 -0
  551. data/mod/bootstrap/vendor/select2/dist/js/i18n/sl.js +3 -0
  552. data/mod/bootstrap/vendor/select2/dist/js/i18n/sr-Cyrl.js +3 -0
  553. data/mod/bootstrap/vendor/select2/dist/js/i18n/sr.js +3 -0
  554. data/mod/bootstrap/vendor/select2/dist/js/i18n/sv.js +3 -0
  555. data/mod/bootstrap/vendor/select2/dist/js/i18n/th.js +3 -0
  556. data/mod/bootstrap/vendor/select2/dist/js/i18n/tr.js +3 -0
  557. data/mod/bootstrap/vendor/select2/dist/js/i18n/uk.js +3 -0
  558. data/mod/bootstrap/vendor/select2/dist/js/i18n/vi.js +3 -0
  559. data/mod/bootstrap/vendor/select2/dist/js/i18n/zh-CN.js +3 -0
  560. data/mod/bootstrap/vendor/select2/dist/js/i18n/zh-TW.js +3 -0
  561. data/mod/bootstrap/vendor/select2/dist/js/select2.full.js +6457 -0
  562. data/mod/bootstrap/vendor/select2/dist/js/select2.full.min.js +1 -0
  563. data/mod/bootstrap/{lib/javascript/script_select2.js → vendor/select2/dist/js/select2.js} +90 -69
  564. data/mod/bootstrap/vendor/select2/dist/js/select2.min.js +1 -0
  565. data/mod/bootstrap/vendor/select2/docs/README.md +1 -0
  566. data/mod/bootstrap/vendor/select2/docs/announcements-4.0.html +12 -0
  567. data/mod/bootstrap/vendor/select2/docs/community.html +12 -0
  568. data/mod/bootstrap/vendor/select2/docs/examples.html +12 -0
  569. data/mod/bootstrap/vendor/select2/docs/index.html +12 -0
  570. data/mod/bootstrap/vendor/select2/docs/options-old.html +12 -0
  571. data/mod/bootstrap/vendor/select2/docs/options.html +12 -0
  572. data/mod/bootstrap/vendor/select2/package.json +73 -0
  573. data/mod/bootstrap/vendor/select2/select2.jquery.json +32 -0
  574. data/mod/bootstrap/vendor/select2/src/js/banner.end.js +6 -0
  575. data/mod/bootstrap/vendor/select2/src/js/banner.start.js +6 -0
  576. data/mod/bootstrap/vendor/select2/src/js/jquery.mousewheel.shim.js +6 -0
  577. data/mod/bootstrap/vendor/select2/src/js/jquery.select2.js +57 -0
  578. data/mod/bootstrap/vendor/select2/src/js/jquery.shim.js +14 -0
  579. data/mod/bootstrap/vendor/select2/src/js/select2/compat/containerCss.js +56 -0
  580. data/mod/bootstrap/vendor/select2/src/js/select2/compat/dropdownCss.js +56 -0
  581. data/mod/bootstrap/vendor/select2/src/js/select2/compat/initSelection.js +42 -0
  582. data/mod/bootstrap/vendor/select2/src/js/select2/compat/inputData.js +127 -0
  583. data/mod/bootstrap/vendor/select2/src/js/select2/compat/matcher.js +42 -0
  584. data/mod/bootstrap/vendor/select2/src/js/select2/compat/query.js +26 -0
  585. data/mod/bootstrap/vendor/select2/src/js/select2/compat/utils.js +43 -0
  586. data/mod/bootstrap/vendor/select2/src/js/select2/core.js +612 -0
  587. data/mod/bootstrap/vendor/select2/src/js/select2/data/ajax.js +109 -0
  588. data/mod/bootstrap/vendor/select2/src/js/select2/data/array.js +79 -0
  589. data/mod/bootstrap/vendor/select2/src/js/select2/data/base.js +40 -0
  590. data/mod/bootstrap/vendor/select2/src/js/select2/data/maximumInputLength.js +31 -0
  591. data/mod/bootstrap/vendor/select2/src/js/select2/data/maximumSelectionLength.js +31 -0
  592. data/mod/bootstrap/vendor/select2/src/js/select2/data/minimumInputLength.js +30 -0
  593. data/mod/bootstrap/vendor/select2/src/js/select2/data/select.js +285 -0
  594. data/mod/bootstrap/vendor/select2/src/js/select2/data/tags.js +128 -0
  595. data/mod/bootstrap/vendor/select2/src/js/select2/data/tokenizer.js +116 -0
  596. data/mod/bootstrap/vendor/select2/src/js/select2/defaults.js +396 -0
  597. data/mod/bootstrap/vendor/select2/src/js/select2/diacritics.js +847 -0
  598. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown.js +42 -0
  599. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/attachBody.js +222 -0
  600. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/attachContainer.js +18 -0
  601. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/closeOnSelect.js +35 -0
  602. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/hidePlaceholder.js +42 -0
  603. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/infiniteScroll.js +89 -0
  604. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/minimumResultsForSearch.js +39 -0
  605. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/search.js +101 -0
  606. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/selectOnClose.js +50 -0
  607. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/stopPropagation.js +38 -0
  608. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/af.js +44 -0
  609. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ar.js +30 -0
  610. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/az.js +27 -0
  611. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/bg.js +47 -0
  612. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/bs.js +55 -0
  613. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ca.js +52 -0
  614. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/cs.js +61 -0
  615. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/da.js +36 -0
  616. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/de.js +40 -0
  617. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/dsb.js +48 -0
  618. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/el.js +52 -0
  619. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/en.js +44 -0
  620. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/es.js +52 -0
  621. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/et.js +53 -0
  622. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/eu.js +51 -0
  623. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/fa.js +38 -0
  624. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/fi.js +30 -0
  625. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/fr.js +33 -0
  626. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/gl.js +39 -0
  627. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/he.js +56 -0
  628. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hi.js +39 -0
  629. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hr.js +44 -0
  630. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hsb.js +48 -0
  631. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hu.js +30 -0
  632. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hy.js +38 -0
  633. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/id.js +30 -0
  634. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/is.js +41 -0
  635. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/it.js +48 -0
  636. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ja.js +36 -0
  637. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/km.js +36 -0
  638. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ko.js +36 -0
  639. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/lt.js +52 -0
  640. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/lv.js +51 -0
  641. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/mk.js +47 -0
  642. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ms.js +30 -0
  643. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/nb.js +32 -0
  644. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/nl.js +43 -0
  645. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/pl.js +45 -0
  646. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ps.js +45 -0
  647. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/pt-BR.js +46 -0
  648. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/pt.js +40 -0
  649. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ro.js +46 -0
  650. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ru.js +58 -0
  651. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sk.js +59 -0
  652. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sl.js +54 -0
  653. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sr-Cyrl.js +55 -0
  654. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sr.js +55 -0
  655. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sv.js +37 -0
  656. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/th.js +36 -0
  657. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/tr.js +36 -0
  658. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/uk.js +43 -0
  659. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/vi.js +37 -0
  660. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/zh-CN.js +36 -0
  661. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/zh-TW.js +33 -0
  662. data/mod/bootstrap/vendor/select2/src/js/select2/keys.js +25 -0
  663. data/mod/bootstrap/vendor/select2/src/js/select2/options.js +122 -0
  664. data/mod/bootstrap/vendor/select2/src/js/select2/results.js +523 -0
  665. data/mod/bootstrap/vendor/select2/src/js/select2/selection/allowClear.js +97 -0
  666. data/mod/bootstrap/vendor/select2/src/js/select2/selection/base.js +158 -0
  667. data/mod/bootstrap/vendor/select2/src/js/select2/selection/clickMask.js +29 -0
  668. data/mod/bootstrap/vendor/select2/src/js/select2/selection/eventRelay.js +45 -0
  669. data/mod/bootstrap/vendor/select2/src/js/select2/selection/multiple.js +109 -0
  670. data/mod/bootstrap/vendor/select2/src/js/select2/selection/placeholder.js +49 -0
  671. data/mod/bootstrap/vendor/select2/src/js/select2/selection/search.js +222 -0
  672. data/mod/bootstrap/vendor/select2/src/js/select2/selection/single.js +99 -0
  673. data/mod/bootstrap/vendor/select2/src/js/select2/selection/stopPropagation.js +38 -0
  674. data/mod/bootstrap/vendor/select2/src/js/select2/translation.js +36 -0
  675. data/mod/bootstrap/vendor/select2/src/js/select2/utils.js +276 -0
  676. data/mod/bootstrap/vendor/select2/src/js/wrapper.end.js +12 -0
  677. data/mod/bootstrap/vendor/select2/src/js/wrapper.start.js +38 -0
  678. data/mod/bootstrap/vendor/select2/src/scss/_dropdown.scss +73 -0
  679. data/mod/bootstrap/vendor/select2/src/scss/_multiple.scss +35 -0
  680. data/mod/bootstrap/vendor/select2/src/scss/_single.scss +34 -0
  681. data/mod/bootstrap/vendor/select2/src/scss/core.scss +48 -0
  682. data/mod/bootstrap/vendor/select2/src/scss/mixins/_gradients.scss +13 -0
  683. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/_defaults.scss +34 -0
  684. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/_multiple.scss +93 -0
  685. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/_single.scss +124 -0
  686. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/layout.scss +64 -0
  687. data/mod/bootstrap/vendor/select2/src/scss/theme/default/_multiple.scss +98 -0
  688. data/mod/bootstrap/vendor/select2/src/scss/theme/default/_single.scss +83 -0
  689. data/mod/bootstrap/vendor/select2/src/scss/theme/default/layout.scss +97 -0
  690. data/mod/bootstrap/vendor/select2/tests/a11y/search-tests.js +51 -0
  691. data/mod/bootstrap/vendor/select2/tests/a11y/selection-tests.js +154 -0
  692. data/mod/bootstrap/vendor/select2/tests/data/array-tests.js +318 -0
  693. data/mod/bootstrap/vendor/select2/tests/data/base-tests.js +29 -0
  694. data/mod/bootstrap/vendor/select2/tests/data/inputData-tests.js +158 -0
  695. data/mod/bootstrap/vendor/select2/tests/data/maximumInputLength-tests.js +138 -0
  696. data/mod/bootstrap/vendor/select2/tests/data/maximumSelectionLength-tests.js +202 -0
  697. data/mod/bootstrap/vendor/select2/tests/data/minimumInputLength-tests.js +138 -0
  698. data/mod/bootstrap/vendor/select2/tests/data/select-tests.js +489 -0
  699. data/mod/bootstrap/vendor/select2/tests/data/tags-tests.js +276 -0
  700. data/mod/bootstrap/vendor/select2/tests/data/tokenizer-tests.js +219 -0
  701. data/mod/bootstrap/vendor/select2/tests/dropdown/dropdownCss-tests.js +104 -0
  702. data/mod/bootstrap/vendor/select2/tests/dropdown/positioning-tests.js +177 -0
  703. data/mod/bootstrap/vendor/select2/tests/dropdown/selectOnClose-tests.js +137 -0
  704. data/mod/bootstrap/vendor/select2/tests/dropdown/stopPropagation-tests.js +33 -0
  705. data/mod/bootstrap/vendor/select2/tests/helpers.js +46 -0
  706. data/mod/bootstrap/vendor/select2/tests/integration.html +21 -0
  707. data/mod/bootstrap/vendor/select2/tests/integration/dom-changes.js +257 -0
  708. data/mod/bootstrap/vendor/select2/tests/integration/jquery-calls.js +30 -0
  709. data/mod/bootstrap/vendor/select2/tests/integration/select2-methods.js +139 -0
  710. data/mod/bootstrap/vendor/select2/tests/options/ajax-tests.js +32 -0
  711. data/mod/bootstrap/vendor/select2/tests/options/data-tests.js +44 -0
  712. data/mod/bootstrap/vendor/select2/tests/options/deprecated-tests.js +250 -0
  713. data/mod/bootstrap/vendor/select2/tests/options/translation-tests.js +28 -0
  714. data/mod/bootstrap/vendor/select2/tests/options/width-tests.js +66 -0
  715. data/mod/bootstrap/vendor/select2/tests/results/focusing-tests.js +138 -0
  716. data/mod/bootstrap/vendor/select2/tests/selection/allowClear-tests.js +218 -0
  717. data/mod/bootstrap/vendor/select2/tests/selection/containerCss-tests.js +104 -0
  718. data/mod/bootstrap/vendor/select2/tests/selection/multiple-tests.js +149 -0
  719. data/mod/bootstrap/vendor/select2/tests/selection/placeholder-tests.js +74 -0
  720. data/mod/bootstrap/vendor/select2/tests/selection/search-tests.js +191 -0
  721. data/mod/bootstrap/vendor/select2/tests/selection/single-tests.js +117 -0
  722. data/mod/bootstrap/vendor/select2/tests/selection/stopPropagation-tests.js +33 -0
  723. data/mod/bootstrap/vendor/select2/tests/unit.html +95 -0
  724. data/mod/bootstrap/vendor/select2/tests/utils/decorator-tests.js +189 -0
  725. data/mod/bootstrap/vendor/select2/tests/utils/escapeMarkup-tests.js +36 -0
  726. data/mod/bootstrap/vendor/select2/tests/vendor/jquery-1.7.2.js +9404 -0
  727. data/mod/bootstrap/vendor/select2/tests/vendor/qunit-1.23.1.css +305 -0
  728. data/mod/bootstrap/vendor/select2/tests/vendor/qunit-1.23.1.js +4334 -0
  729. data/mod/bootstrap/vendor/select2/vendor/jquery-2.1.0.js +9111 -0
  730. data/mod/carrierwave/lib/carrier_wave/cardmount.rb +6 -1
  731. data/mod/carrierwave/lib/carrier_wave/file_card_uploader.rb +4 -0
  732. data/mod/carrierwave/set/abstract/attachment.rb +13 -6
  733. data/mod/carrierwave/set/abstract/attachment/storage_type.rb +15 -12
  734. data/mod/carrierwave/set/abstract/attachment/upload_cache.rb +2 -3
  735. data/mod/carrierwave/set/type/file.rb +17 -17
  736. data/mod/carrierwave/set/type/image.rb +40 -37
  737. data/mod/carrierwave/spec/set/type/file_spec.rb +15 -15
  738. data/mod/carrierwave/spec/set/type/image_spec.rb +3 -3
  739. data/mod/core/chunk/reference.rb +3 -3
  740. data/mod/core/chunk/view_stub.rb +12 -4
  741. data/mod/core/format/html_format.rb +1 -1
  742. data/mod/core/format/text_format.rb +5 -0
  743. data/mod/core/set/abstract/code_file.rb +8 -3
  744. data/mod/core/set/all/actify.rb +8 -50
  745. data/mod/core/set/all/assign_attributes.rb +1 -1
  746. data/mod/core/set/all/cache.rb +1 -1
  747. data/mod/core/set/all/collection.rb +7 -7
  748. data/mod/core/set/all/content.rb +12 -6
  749. data/mod/core/set/all/fetch.rb +23 -15
  750. data/mod/core/set/all/fetch_helper.rb +11 -9
  751. data/mod/core/set/all/haml.rb +4 -0
  752. data/mod/core/set/all/initialize.rb +2 -2
  753. data/mod/core/set/all/mark.rb +17 -35
  754. data/mod/core/set/all/name.rb +25 -25
  755. data/mod/core/set/all/name_validations.rb +6 -6
  756. data/mod/core/set/all/permissions.rb +1 -1
  757. data/mod/core/set/all/phases.rb +3 -3
  758. data/mod/core/set/all/references.rb +4 -4
  759. data/mod/core/set/all/rename.rb +6 -7
  760. data/mod/core/set/all/rules.rb +2 -2
  761. data/mod/core/set/all/stages.rb +2 -11
  762. data/mod/core/set/all/subcards.rb +1 -1
  763. data/mod/core/set/all/templating.rb +4 -4
  764. data/mod/core/set/all/type.rb +2 -2
  765. data/mod/core/set/all/update_read_rules.rb +2 -56
  766. data/mod/core/set_pattern/04_star.rb +1 -1
  767. data/mod/core/set_pattern/05_rstar.rb +1 -1
  768. data/mod/core/set_pattern/06_right.rb +1 -1
  769. data/mod/core/set_pattern/07_type_plus_right.rb +2 -3
  770. data/mod/core/spec/format/html_format_spec.rb +4 -4
  771. data/mod/core/spec/set/all/actify_spec.rb +107 -42
  772. data/mod/core/spec/set/all/event_conditions_spec.rb +1 -1
  773. data/mod/core/spec/set/all/fetch_spec.rb +57 -13
  774. data/mod/core/spec/set/all/name_spec.rb +1 -1
  775. data/mod/core/spec/set/all/permissions/reader_rules_spec.rb +1 -1
  776. data/mod/core/spec/set/all/permissions_spec.rb +2 -2
  777. data/mod/core/spec/set/all/rename_spec.rb +7 -5
  778. data/mod/core/spec/set/all/templating_spec.rb +5 -5
  779. data/mod/core/spec/set/all/type_spec.rb +1 -1
  780. data/mod/developer/set/all/event_viz.rb +1 -3
  781. data/mod/history/lib/card/act.rb +2 -6
  782. data/mod/history/lib/card/act/act_renderer.rb +6 -11
  783. data/mod/history/lib/card/action/action_renderer.rb +1 -1
  784. data/mod/history/lib/card/change.rb +1 -1
  785. data/mod/history/set/all/action_view.rb +1 -1
  786. data/mod/history/set/all/actions.rb +10 -1
  787. data/mod/history/set/all/content_history.rb +9 -9
  788. data/mod/history/set/all/history.rb +40 -27
  789. data/mod/machines/lib/javascript/decko.js.coffee +1 -1
  790. data/mod/machines/lib/javascript/decko_filter.js.coffee +40 -0
  791. data/mod/machines/lib/javascript/decko_layout.js.coffee +16 -8
  792. data/mod/machines/lib/stylesheets/style_cards.scss +9 -0
  793. data/mod/machines/set/abstract/machine.rb +12 -9
  794. data/mod/machines/set/abstract/script.rb +4 -0
  795. data/mod/machines/set/self/script_slot.rb +2 -1
  796. data/mod/machines/set/type/css.rb +4 -0
  797. data/mod/machines/spec/set/type/skin_spec.rb +2 -2
  798. data/mod/machines/spec/shared_examples/machine_input.rb +3 -3
  799. data/mod/notifications/format/email_html_format.rb +4 -0
  800. data/mod/notifications/set/all/follow.rb +1 -1
  801. data/mod/notifications/set/all/send_notifications.rb +18 -17
  802. data/mod/notifications/set/right/bcc.rb +1 -1
  803. data/mod/notifications/set/right/follow.rb +3 -3
  804. data/mod/notifications/set/right/followers.rb +1 -1
  805. data/mod/notifications/set/right/following.rb +2 -2
  806. data/mod/notifications/set/right/html_message.rb +0 -5
  807. data/mod/notifications/set/right/text_message.rb +0 -5
  808. data/mod/notifications/set/self/follow_defaults.rb +3 -3
  809. data/mod/notifications/set/type_plus_right/user/follow.rb +1 -1
  810. data/mod/notifications/spec/set/right/followers_spec.rb +1 -1
  811. data/mod/pointer/set/abstract/01_paging.rb +1 -1
  812. data/mod/pointer/set/abstract/02_pointer.rb +2 -2
  813. data/mod/pointer/set/abstract/02_pointer/edit.rb +10 -8
  814. data/mod/pointer/set/abstract/code_pointer.rb +1 -1
  815. data/mod/pointer/set/self/input_options.rb +1 -1
  816. data/mod/pointer/spec/set/type/pointer_spec.rb +1 -1
  817. data/mod/prosemirror_editor/set/abstract/prosemirror_editor.rb +1 -1
  818. data/mod/{standard → search}/set/abstract/01_search_params.rb +0 -0
  819. data/mod/{standard → search}/set/abstract/search.rb +1 -1
  820. data/mod/{standard → search}/set/abstract/wql_search.rb +2 -2
  821. data/mod/search/set/all/filter.rb +12 -0
  822. data/mod/{standard → search}/set/self/navbox.rb +1 -1
  823. data/mod/{standard → search}/set/self/recent.rb +1 -1
  824. data/mod/{standard → search}/set/self/search.rb +2 -2
  825. data/mod/{standard → search}/set/type/search_type.rb +2 -2
  826. data/mod/search/spec/set/all/filter_spec.rb +37 -0
  827. data/mod/{standard → search}/spec/set/self/navbox_spec.rb +0 -0
  828. data/mod/{standard → search}/spec/set/self/recent_spec.rb +0 -0
  829. data/mod/{standard → search}/spec/set/self/search_spec.rb +0 -0
  830. data/mod/search/template/all/filter/_filter_input.haml +8 -0
  831. data/mod/search/template/all/filter/filter_form.haml +32 -0
  832. data/mod/settings/lib/card/setting.rb +11 -11
  833. data/mod/settings/set/abstract/permission.rb +3 -3
  834. data/mod/settings/set/right/read.rb +56 -0
  835. data/mod/settings/set/type/setting.rb +1 -1
  836. data/mod/solid_cache/set/right/solid_cache.rb +1 -1
  837. data/mod/standard/set/abstract/toolbar_split_button.rb +1 -1
  838. data/mod/standard/set/all/error.rb +1 -1
  839. data/mod/standard/set/all/links.rb +3 -3
  840. data/mod/standard/set/all/list_changes.rb +7 -3
  841. data/mod/standard/set/all/rich_html/content.rb +17 -17
  842. data/mod/standard/set/all/rich_html/editing.rb +3 -3
  843. data/mod/standard/set/all/rich_html/editor.rb +1 -1
  844. data/mod/standard/set/all/rich_html/form.rb +2 -2
  845. data/mod/standard/set/all/rich_html/formgroup.rb +1 -1
  846. data/mod/standard/set/all/rich_html/header.rb +3 -3
  847. data/mod/standard/set/all/rich_html/menu.rb +7 -7
  848. data/mod/standard/set/all/rich_html/modal.rb +3 -3
  849. data/mod/standard/set/all/rich_html/new.rb +3 -3
  850. data/mod/standard/set/all/rich_html/toolbar.rb +16 -14
  851. data/mod/standard/set/all/rich_html/wrapper.rb +7 -7
  852. data/mod/standard/set/rstar/rules.rb +5 -5
  853. data/mod/standard/set/rstar/rules_editor.rb +5 -5
  854. data/mod/standard/set/type/cardtype.rb +1 -1
  855. data/mod/standard/set/type/list.rb +6 -6
  856. data/mod/standard/set/type/listed_by.rb +29 -24
  857. data/mod/standard/set/type/session.rb +0 -4
  858. data/mod/standard/set/type/set.rb +23 -26
  859. data/mod/standard/set/type/toggle.rb +2 -2
  860. data/mod/standard/spec/set/all/history_spec.rb +1 -0
  861. data/mod/standard/spec/set/all/rich_html/editing_spec.rb +1 -1
  862. data/mod/standard/spec/set/all/rich_html/wrapper_spec.rb +2 -2
  863. data/mod/standard/spec/set/type/list_spec.rb +7 -3
  864. data/mod/standard/spec/set/type/listed_by_spec.rb +3 -2
  865. data/mod/standard/spec/set/type/uri_spec.rb +8 -8
  866. data/spec/config/initializers/core_extensions_spec.rb +2 -2
  867. data/spec/lib/card/cache_spec.rb +3 -3
  868. data/spec/lib/card/codename_spec.rb +40 -2
  869. data/spec/lib/card/format_spec.rb +6 -6
  870. data/spec/lib/card/query_spec.rb +0 -2
  871. data/spec/lib/card/reference_spec.rb +3 -3
  872. data/spec/lib/card/stage_director_spec.rb +52 -17
  873. data/spec/lib/card/success_spec.rb +1 -1
  874. data/spec/models/card/trash_spec.rb +1 -1
  875. data/spec/models/card_spec.rb +3 -3
  876. data/spec/support/helper/event_helper.rb +14 -0
  877. data/spec/support/helper/render_helper.rb +1 -1
  878. data/spec/support/matchers/card_matchers.rb +7 -9
  879. metadata +643 -111
  880. data/lib/active_record/connection_adapters_ext.rb +0 -52
  881. data/lib/active_support/callbacks_ext.rb +0 -9
  882. data/lib/card/name/view_name.rb +0 -50
  883. data/mod/bootstrap/db/migrate_cards/20170719163701_update_bootswatch_themes.rb +0 -80
  884. data/mod/bootstrap/lib/javascript/bootstrap.js +0 -3535
  885. data/mod/bootstrap/lib/javascript/bootstrap.min.js +0 -7
  886. data/mod/bootstrap/lib/javascript/select2.min.js +0 -3
  887. data/mod/bootstrap/lib/javascript/tether.min.js +0 -1
  888. data/mod/bootstrap/lib/stylesheets/bootstrap.css +0 -9320
  889. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/.scss-lint.yml +0 -548
  890. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_alert.scss +0 -55
  891. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_badge.scss +0 -77
  892. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_breadcrumb.scss +0 -38
  893. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_buttons.scss +0 -170
  894. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_card.scss +0 -276
  895. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_carousel.scss +0 -178
  896. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_close.scss +0 -31
  897. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_code.scss +0 -64
  898. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_custom-forms.scss +0 -263
  899. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_custom.scss +0 -4
  900. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_dropdown.scss +0 -161
  901. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_forms.scss +0 -388
  902. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_grid.scss +0 -52
  903. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_images.scss +0 -43
  904. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_input-group.scss +0 -178
  905. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_jumbotron.scss +0 -20
  906. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_list-group.scss +0 -141
  907. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_media.scss +0 -8
  908. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_mixins.scss +0 -57
  909. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_modal.scss +0 -142
  910. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_nav.scss +0 -119
  911. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_navbar.scss +0 -268
  912. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_normalize.scss +0 -461
  913. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_pagination.scss +0 -67
  914. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_popover.scss +0 -171
  915. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_print.scss +0 -119
  916. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_progress.scss +0 -32
  917. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_reboot.scss +0 -389
  918. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_tables.scss +0 -153
  919. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_tooltip.scss +0 -90
  920. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_transitions.scss +0 -34
  921. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_type.scss +0 -143
  922. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_utilities.scss +0 -13
  923. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_variables.scss +0 -961
  924. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/bootstrap-grid.scss +0 -43
  925. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/bootstrap-reboot.scss +0 -10
  926. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/bootstrap.scss +0 -54
  927. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_alert.scss +0 -14
  928. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_background-variant.scss +0 -12
  929. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_badge.scss +0 -11
  930. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_border-radius.scss +0 -35
  931. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_breakpoints.scss +0 -95
  932. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_buttons.scss +0 -86
  933. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_cards.scss +0 -47
  934. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_clearfix.scss +0 -7
  935. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_float.scss +0 -9
  936. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_forms.scss +0 -79
  937. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_gradients.scss +0 -37
  938. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_grid-framework.scss +0 -65
  939. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_grid.scss +0 -100
  940. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_hover.scss +0 -60
  941. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_image.scss +0 -36
  942. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_list-group.scss +0 -28
  943. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_lists.scss +0 -7
  944. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_pagination.scss +0 -21
  945. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_screen-reader.scss +0 -32
  946. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_size.scss +0 -6
  947. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_table-row.scss +0 -30
  948. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_text-emphasis.scss +0 -12
  949. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_text-hide.scss +0 -8
  950. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_transforms.scss +0 -14
  951. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_visibility.scss +0 -5
  952. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_align.scss +0 -6
  953. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_background.scss +0 -19
  954. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_borders.scss +0 -37
  955. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_clearfix.scss +0 -3
  956. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_display.scss +0 -18
  957. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_flex.scss +0 -48
  958. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_float.scss +0 -9
  959. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_position.scss +0 -23
  960. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_screenreaders.scss +0 -11
  961. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_sizing.scss +0 -10
  962. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_spacing.scss +0 -43
  963. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_text.scss +0 -61
  964. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_visibility.scss +0 -55
  965. data/mod/bootstrap/lib/stylesheets/select2-boostrap-v4-alpha-6.scss +0 -828
@@ -0,0 +1,54 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <title>Popover</title>
8
+ <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
9
+
10
+ <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
11
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
12
+ <!--[if lt IE 9]>
13
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
14
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
15
+ <![endif]-->
16
+ </head>
17
+ <body>
18
+
19
+ <div class="container">
20
+
21
+ <div class="page-header">
22
+ <h1>Popover <small>Bootstrap Visual Test</small></h1>
23
+ </div>
24
+
25
+ <button type="button" class="btn btn-default js-popover" data-container="body" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." data-original-title="" title="">
26
+ Popover on left
27
+ </button>
28
+ <button type="button" class="btn btn-default js-popover" data-container="body" data-toggle="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." data-original-title="" title="">
29
+ Popover on top
30
+ </button>
31
+ <button type="button" class="btn btn-default js-popover" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." data-original-title="" title="">
32
+ Popover on bottom
33
+ </button>
34
+ <button type="button" class="btn btn-default js-popover" data-container="body" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." data-original-title="" title="">
35
+ Popover on right
36
+ </button>
37
+
38
+ </div>
39
+
40
+ <!-- JavaScript Includes -->
41
+ <script src="../vendor/jquery.min.js"></script>
42
+ <script src="../../transition.js"></script>
43
+ <script src="../../tooltip.js"></script>
44
+ <script src="../../popover.js"></script>
45
+
46
+ <!-- JavaScript Test -->
47
+ <script>
48
+ $(function () {
49
+ $('.js-popover').popover()
50
+ })
51
+ </script>
52
+
53
+ </body>
54
+ </html>
@@ -0,0 +1,109 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <title>Scrollspy</title>
8
+ <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
9
+
10
+ <style>
11
+ body { padding-top: 70px; }
12
+ </style>
13
+
14
+ <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
15
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
16
+ <!--[if lt IE 9]>
17
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
18
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
19
+ <![endif]-->
20
+ </head>
21
+ <body data-spy="scroll" data-target=".navbar" data-offset="70">
22
+
23
+ <div class="container">
24
+
25
+ <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
26
+ <div class="container-fluid">
27
+ <div class="navbar-header">
28
+ <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".js-navbar-scrollspy">
29
+ <span class="sr-only">Toggle navigation</span>
30
+ <span class="icon-bar"></span>
31
+ <span class="icon-bar"></span>
32
+ <span class="icon-bar"></span>
33
+ </button>
34
+ <a class="navbar-brand" href="#">Project Name</a>
35
+ </div>
36
+ <div class="collapse navbar-collapse js-navbar-scrollspy">
37
+ <ul class="nav navbar-nav">
38
+ <li class=""><a href="#fat">@fat</a></li>
39
+ <li class=""><a href="#mdo">@mdo</a></li>
40
+ <li class="dropdown">
41
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown <b class="caret"></b></a>
42
+ <ul class="dropdown-menu">
43
+ <li class=""><a href="#one">one</a></li>
44
+ <li><a href="#two">two</a></li>
45
+ <li role="separator" class="divider"></li>
46
+ <li><a href="#three">three</a></li>
47
+ </ul>
48
+ </li>
49
+ </ul>
50
+ </div>
51
+ </div>
52
+ </nav>
53
+
54
+ <h2 id="fat">@fat</h2>
55
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
56
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
57
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
58
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
59
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
60
+ <hr>
61
+ <h2 id="mdo">@mdo</h2>
62
+ <p>Veniam marfa mustache skateboard, adipisicing fugiat velit pitchfork beard. Freegan beard aliqua cupidatat mcsweeney's vero. Cupidatat four loko nisi, ea helvetica nulla carles. Tattooed cosby sweater food truck, mcsweeney's quis non freegan vinyl. Lo-fi wes anderson +1 sartorial. Carles non aesthetic exercitation quis gentrify. Brooklyn adipisicing craft beer vice keytar deserunt.</p>
63
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
64
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
65
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
66
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
67
+ <hr>
68
+ <h2 id="one">one</h2>
69
+ <p>Occaecat commodo aliqua delectus. Fap craft beer deserunt skateboard ea. Lomo bicycle rights adipisicing banh mi, velit ea sunt next level locavore single-origin coffee in magna veniam. High life id vinyl, echo park consequat quis aliquip banh mi pitchfork. Vero VHS est adipisicing. Consectetur nisi DIY minim messenger bag. Cred ex in, sustainable delectus consectetur fanny pack iphone.</p>
70
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
71
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
72
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
73
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
74
+ <hr>
75
+ <h2 id="two">two</h2>
76
+ <p>In incididunt echo park, officia deserunt mcsweeney's proident master cleanse thundercats sapiente veniam. Excepteur VHS elit, proident shoreditch +1 biodiesel laborum craft beer. Single-origin coffee wayfarers irure four loko, cupidatat terry richardson master cleanse. Assumenda you probably haven't heard of them art party fanny pack, tattooed nulla cardigan tempor ad. Proident wolf nesciunt sartorial keffiyeh eu banh mi sustainable. Elit wolf voluptate, lo-fi ea portland before they sold out four loko. Locavore enim nostrud mlkshk brooklyn nesciunt.</p>
77
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
78
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
79
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
80
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
81
+ <hr>
82
+ <h2 id="three">three</h2>
83
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
84
+ <p>Keytar twee blog, culpa messenger bag marfa whatever delectus food truck. Sapiente synth id assumenda. Locavore sed helvetica cliche irony, thundercats you probably haven't heard of them consequat hoodie gluten-free lo-fi fap aliquip. Labore elit placeat before they sold out, terry richardson proident brunch nesciunt quis cosby sweater pariatur keffiyeh ut helvetica artisan. Cardigan craft beer seitan readymade velit. VHS chambray laboris tempor veniam. Anim mollit minim commodo ullamco thundercats.
85
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
86
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
87
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
88
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
89
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
90
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
91
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
92
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
93
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
94
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
95
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
96
+ <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
97
+ </p>
98
+
99
+ </div>
100
+
101
+ <!-- JavaScript Includes -->
102
+ <script src="../vendor/jquery.min.js"></script>
103
+ <script src="../../transition.js"></script>
104
+ <script src="../../scrollspy.js"></script>
105
+ <script src="../../dropdown.js"></script>
106
+ <script src="../../collapse.js"></script>
107
+
108
+ </body>
109
+ </html>
@@ -0,0 +1,172 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <title>Tab</title>
8
+ <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
9
+
10
+ <style>
11
+ h4 {
12
+ margin: 40px 0 10px;
13
+ }
14
+
15
+ .nav-tabs {
16
+ margin-bottom: 15px;
17
+ }
18
+ </style>
19
+
20
+ <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
21
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
22
+ <!--[if lt IE 9]>
23
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
24
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
25
+ <![endif]-->
26
+ </head>
27
+ <body>
28
+
29
+ <div class="container">
30
+
31
+ <div class="page-header">
32
+ <h1>Tab <small>Bootstrap Visual Test</small></h1>
33
+ </div>
34
+
35
+ <h4>Tabs without fade</h4>
36
+
37
+ <ul id="myTab" class="nav nav-tabs">
38
+ <li class="active"><a href="#home" data-toggle="tab">Home</a></li>
39
+ <li><a href="#profile" data-toggle="tab">Profile</a></li>
40
+ <li class="dropdown">
41
+ <a href="#" id="myTabDrop1" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown <b class="caret"></b></a>
42
+ <ul class="dropdown-menu" aria-labelledby="myTabDrop1">
43
+ <li><a href="#dropdown1" data-toggle="tab">@fat</a></li>
44
+ <li><a href="#dropdown2" data-toggle="tab">@mdo</a></li>
45
+ </ul>
46
+ </li>
47
+ </ul>
48
+ <div id="myTabContent" class="tab-content">
49
+ <div class="tab-pane active" id="home">
50
+ <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
51
+ <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
52
+ </div>
53
+ <div class="tab-pane" id="profile">
54
+ <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
55
+ <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
56
+ </div>
57
+ <div class="tab-pane" id="dropdown1">
58
+ <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
59
+ <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
60
+ </div>
61
+ <div class="tab-pane" id="dropdown2">
62
+ <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
63
+ <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
64
+ </div>
65
+ </div>
66
+
67
+ <h4>Tabs with fade</h4>
68
+
69
+ <ul id="myTab1" class="nav nav-tabs">
70
+ <li class="active"><a href="#home1" data-toggle="tab">Home</a></li>
71
+ <li><a href="#profile1" data-toggle="tab">Profile</a></li>
72
+ <li class="dropdown">
73
+ <a href="#" id="myTabDrop2" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown <b class="caret"></b></a>
74
+ <ul class="dropdown-menu" aria-labelledby="myTabDrop2">
75
+ <li><a href="#dropdown1-1" data-toggle="tab">@fat</a></li>
76
+ <li><a href="#dropdown1-2" data-toggle="tab">@mdo</a></li>
77
+ </ul>
78
+ </li>
79
+ </ul>
80
+ <div id="myTabContent1" class="tab-content">
81
+ <div class="tab-pane fade in active" id="home1">
82
+ <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
83
+ <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
84
+ </div>
85
+ <div class="tab-pane fade" id="profile1">
86
+ <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
87
+ <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
88
+ </div>
89
+ <div class="tab-pane fade" id="dropdown1-1">
90
+ <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
91
+ <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
92
+ </div>
93
+ <div class="tab-pane fade" id="dropdown1-2">
94
+ <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
95
+ <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
96
+ </div>
97
+ </div>
98
+
99
+ <h4>Tabs without fade (no initially active pane)</h4>
100
+
101
+ <ul id="myTab2" class="nav nav-tabs">
102
+ <li><a href="#home2" data-toggle="tab">Home</a></li>
103
+ <li><a href="#profile2" data-toggle="tab">Profile</a></li>
104
+ <li class="dropdown">
105
+ <a href="#" id="myTabDrop3" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown <b class="caret"></b></a>
106
+ <ul class="dropdown-menu" aria-labelledby="myTabDrop3">
107
+ <li><a href="#dropdown2-1" data-toggle="tab">@fat</a></li>
108
+ <li><a href="#dropdown2-2" data-toggle="tab">@mdo</a></li>
109
+ </ul>
110
+ </li>
111
+ </ul>
112
+ <div id="myTabContent2" class="tab-content">
113
+ <div class="tab-pane" id="home2">
114
+ <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
115
+ <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
116
+ </div>
117
+ <div class="tab-pane" id="profile2">
118
+ <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
119
+ <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
120
+ </div>
121
+ <div class="tab-pane" id="dropdown2-1">
122
+ <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
123
+ <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
124
+ </div>
125
+ <div class="tab-pane" id="dropdown2-2">
126
+ <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
127
+ <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
128
+ </div>
129
+ </div>
130
+
131
+ <h4>Tabs with fade (no initially active pane)</h4>
132
+
133
+ <ul id="myTab3" class="nav nav-tabs">
134
+ <li><a href="#home3" data-toggle="tab">Home</a></li>
135
+ <li><a href="#profile3" data-toggle="tab">Profile</a></li>
136
+ <li class="dropdown">
137
+ <a href="#" id="myTabDrop4" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown <b class="caret"></b></a>
138
+ <ul class="dropdown-menu" aria-labelledby="myTabDrop4">
139
+ <li><a href="#dropdown3-1" data-toggle="tab">@fat</a></li>
140
+ <li><a href="#dropdown3-2" data-toggle="tab">@mdo</a></li>
141
+ </ul>
142
+ </li>
143
+ </ul>
144
+ <div id="myTabContent3" class="tab-content">
145
+ <div class="tab-pane fade" id="home3">
146
+ <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
147
+ <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
148
+ </div>
149
+ <div class="tab-pane fade" id="profile3">
150
+ <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
151
+ <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
152
+ </div>
153
+ <div class="tab-pane fade" id="dropdown3-1">
154
+ <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
155
+ <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
156
+ </div>
157
+ <div class="tab-pane fade" id="dropdown3-2">
158
+ <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
159
+ <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
160
+ </div>
161
+ </div>
162
+
163
+ </div>
164
+
165
+ <!-- JavaScript Includes -->
166
+ <script src="../vendor/jquery.min.js"></script>
167
+ <script src="../../transition.js"></script>
168
+ <script src="../../tab.js"></script>
169
+ <script src="../../dropdown.js"></script>
170
+
171
+ </body>
172
+ </html>
@@ -0,0 +1,50 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <title>Tooltip</title>
8
+ <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
9
+
10
+ <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
11
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
12
+ <!--[if lt IE 9]>
13
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
14
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
15
+ <![endif]-->
16
+ </head>
17
+ <body>
18
+
19
+ <div class="container">
20
+
21
+ <div class="page-header">
22
+ <h1>Tooltip <small>Bootstrap Visual Test</small></h1>
23
+ </div>
24
+
25
+ <p class="muted" style="margin-bottom: 0;">Tight pants next level keffiyeh <a href="#" data-toggle="tooltip" title="" data-original-title="Default tooltip">you probably</a> haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel <a href="#" data-toggle="tooltip" title="" data-original-title="Another tooltip">have a</a> terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan <a href="#" data-toggle="tooltip" title="" data-original-title="Another one here too">whatever keytar</a>, scenester farm-to-table banksy Austin <a href="#" data-toggle="tooltip" title="" data-original-title="The last tip!">twitter handle</a> freegan cred raw denim single-origin coffee viral.
26
+ </p>
27
+ <hr>
28
+ <p>
29
+ <button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="left" title="" data-original-title="Tooltip on left">Tooltip on left</button>
30
+ <button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="top" title="Tooltip on top">Tooltip on top</button>
31
+ <button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">Tooltip on bottom</button>
32
+ <button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="right" title="Tooltip on right">Tooltip on right</button>
33
+ </p>
34
+
35
+ </div>
36
+
37
+ <!-- JavaScript Includes -->
38
+ <script src="../vendor/jquery.min.js"></script>
39
+ <script src="../../transition.js"></script>
40
+ <script src="../../tooltip.js"></script>
41
+
42
+ <!-- JavaScript Test -->
43
+ <script>
44
+ $(function () {
45
+ $('[data-toggle="tooltip"]').tooltip()
46
+ })
47
+ </script>
48
+
49
+ </body>
50
+ </html>
@@ -0,0 +1,520 @@
1
+ /* ========================================================================
2
+ * Bootstrap: tooltip.js v3.3.7
3
+ * http://getbootstrap.com/javascript/#tooltip
4
+ * Inspired by the original jQuery.tipsy by Jason Frame
5
+ * ========================================================================
6
+ * Copyright 2011-2016 Twitter, Inc.
7
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
8
+ * ======================================================================== */
9
+
10
+
11
+ +function ($) {
12
+ 'use strict';
13
+
14
+ // TOOLTIP PUBLIC CLASS DEFINITION
15
+ // ===============================
16
+
17
+ var Tooltip = function (element, options) {
18
+ this.type = null
19
+ this.options = null
20
+ this.enabled = null
21
+ this.timeout = null
22
+ this.hoverState = null
23
+ this.$element = null
24
+ this.inState = null
25
+
26
+ this.init('tooltip', element, options)
27
+ }
28
+
29
+ Tooltip.VERSION = '3.3.7'
30
+
31
+ Tooltip.TRANSITION_DURATION = 150
32
+
33
+ Tooltip.DEFAULTS = {
34
+ animation: true,
35
+ placement: 'top',
36
+ selector: false,
37
+ template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
38
+ trigger: 'hover focus',
39
+ title: '',
40
+ delay: 0,
41
+ html: false,
42
+ container: false,
43
+ viewport: {
44
+ selector: 'body',
45
+ padding: 0
46
+ }
47
+ }
48
+
49
+ Tooltip.prototype.init = function (type, element, options) {
50
+ this.enabled = true
51
+ this.type = type
52
+ this.$element = $(element)
53
+ this.options = this.getOptions(options)
54
+ this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
55
+ this.inState = { click: false, hover: false, focus: false }
56
+
57
+ if (this.$element[0] instanceof document.constructor && !this.options.selector) {
58
+ throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
59
+ }
60
+
61
+ var triggers = this.options.trigger.split(' ')
62
+
63
+ for (var i = triggers.length; i--;) {
64
+ var trigger = triggers[i]
65
+
66
+ if (trigger == 'click') {
67
+ this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
68
+ } else if (trigger != 'manual') {
69
+ var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
70
+ var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
71
+
72
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
73
+ this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
74
+ }
75
+ }
76
+
77
+ this.options.selector ?
78
+ (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
79
+ this.fixTitle()
80
+ }
81
+
82
+ Tooltip.prototype.getDefaults = function () {
83
+ return Tooltip.DEFAULTS
84
+ }
85
+
86
+ Tooltip.prototype.getOptions = function (options) {
87
+ options = $.extend({}, this.getDefaults(), this.$element.data(), options)
88
+
89
+ if (options.delay && typeof options.delay == 'number') {
90
+ options.delay = {
91
+ show: options.delay,
92
+ hide: options.delay
93
+ }
94
+ }
95
+
96
+ return options
97
+ }
98
+
99
+ Tooltip.prototype.getDelegateOptions = function () {
100
+ var options = {}
101
+ var defaults = this.getDefaults()
102
+
103
+ this._options && $.each(this._options, function (key, value) {
104
+ if (defaults[key] != value) options[key] = value
105
+ })
106
+
107
+ return options
108
+ }
109
+
110
+ Tooltip.prototype.enter = function (obj) {
111
+ var self = obj instanceof this.constructor ?
112
+ obj : $(obj.currentTarget).data('bs.' + this.type)
113
+
114
+ if (!self) {
115
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
116
+ $(obj.currentTarget).data('bs.' + this.type, self)
117
+ }
118
+
119
+ if (obj instanceof $.Event) {
120
+ self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
121
+ }
122
+
123
+ if (self.tip().hasClass('in') || self.hoverState == 'in') {
124
+ self.hoverState = 'in'
125
+ return
126
+ }
127
+
128
+ clearTimeout(self.timeout)
129
+
130
+ self.hoverState = 'in'
131
+
132
+ if (!self.options.delay || !self.options.delay.show) return self.show()
133
+
134
+ self.timeout = setTimeout(function () {
135
+ if (self.hoverState == 'in') self.show()
136
+ }, self.options.delay.show)
137
+ }
138
+
139
+ Tooltip.prototype.isInStateTrue = function () {
140
+ for (var key in this.inState) {
141
+ if (this.inState[key]) return true
142
+ }
143
+
144
+ return false
145
+ }
146
+
147
+ Tooltip.prototype.leave = function (obj) {
148
+ var self = obj instanceof this.constructor ?
149
+ obj : $(obj.currentTarget).data('bs.' + this.type)
150
+
151
+ if (!self) {
152
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
153
+ $(obj.currentTarget).data('bs.' + this.type, self)
154
+ }
155
+
156
+ if (obj instanceof $.Event) {
157
+ self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
158
+ }
159
+
160
+ if (self.isInStateTrue()) return
161
+
162
+ clearTimeout(self.timeout)
163
+
164
+ self.hoverState = 'out'
165
+
166
+ if (!self.options.delay || !self.options.delay.hide) return self.hide()
167
+
168
+ self.timeout = setTimeout(function () {
169
+ if (self.hoverState == 'out') self.hide()
170
+ }, self.options.delay.hide)
171
+ }
172
+
173
+ Tooltip.prototype.show = function () {
174
+ var e = $.Event('show.bs.' + this.type)
175
+
176
+ if (this.hasContent() && this.enabled) {
177
+ this.$element.trigger(e)
178
+
179
+ var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
180
+ if (e.isDefaultPrevented() || !inDom) return
181
+ var that = this
182
+
183
+ var $tip = this.tip()
184
+
185
+ var tipId = this.getUID(this.type)
186
+
187
+ this.setContent()
188
+ $tip.attr('id', tipId)
189
+ this.$element.attr('aria-describedby', tipId)
190
+
191
+ if (this.options.animation) $tip.addClass('fade')
192
+
193
+ var placement = typeof this.options.placement == 'function' ?
194
+ this.options.placement.call(this, $tip[0], this.$element[0]) :
195
+ this.options.placement
196
+
197
+ var autoToken = /\s?auto?\s?/i
198
+ var autoPlace = autoToken.test(placement)
199
+ if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
200
+
201
+ $tip
202
+ .detach()
203
+ .css({ top: 0, left: 0, display: 'block' })
204
+ .addClass(placement)
205
+ .data('bs.' + this.type, this)
206
+
207
+ this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
208
+ this.$element.trigger('inserted.bs.' + this.type)
209
+
210
+ var pos = this.getPosition()
211
+ var actualWidth = $tip[0].offsetWidth
212
+ var actualHeight = $tip[0].offsetHeight
213
+
214
+ if (autoPlace) {
215
+ var orgPlacement = placement
216
+ var viewportDim = this.getPosition(this.$viewport)
217
+
218
+ placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
219
+ placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
220
+ placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
221
+ placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
222
+ placement
223
+
224
+ $tip
225
+ .removeClass(orgPlacement)
226
+ .addClass(placement)
227
+ }
228
+
229
+ var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
230
+
231
+ this.applyPlacement(calculatedOffset, placement)
232
+
233
+ var complete = function () {
234
+ var prevHoverState = that.hoverState
235
+ that.$element.trigger('shown.bs.' + that.type)
236
+ that.hoverState = null
237
+
238
+ if (prevHoverState == 'out') that.leave(that)
239
+ }
240
+
241
+ $.support.transition && this.$tip.hasClass('fade') ?
242
+ $tip
243
+ .one('bsTransitionEnd', complete)
244
+ .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
245
+ complete()
246
+ }
247
+ }
248
+
249
+ Tooltip.prototype.applyPlacement = function (offset, placement) {
250
+ var $tip = this.tip()
251
+ var width = $tip[0].offsetWidth
252
+ var height = $tip[0].offsetHeight
253
+
254
+ // manually read margins because getBoundingClientRect includes difference
255
+ var marginTop = parseInt($tip.css('margin-top'), 10)
256
+ var marginLeft = parseInt($tip.css('margin-left'), 10)
257
+
258
+ // we must check for NaN for ie 8/9
259
+ if (isNaN(marginTop)) marginTop = 0
260
+ if (isNaN(marginLeft)) marginLeft = 0
261
+
262
+ offset.top += marginTop
263
+ offset.left += marginLeft
264
+
265
+ // $.fn.offset doesn't round pixel values
266
+ // so we use setOffset directly with our own function B-0
267
+ $.offset.setOffset($tip[0], $.extend({
268
+ using: function (props) {
269
+ $tip.css({
270
+ top: Math.round(props.top),
271
+ left: Math.round(props.left)
272
+ })
273
+ }
274
+ }, offset), 0)
275
+
276
+ $tip.addClass('in')
277
+
278
+ // check to see if placing tip in new offset caused the tip to resize itself
279
+ var actualWidth = $tip[0].offsetWidth
280
+ var actualHeight = $tip[0].offsetHeight
281
+
282
+ if (placement == 'top' && actualHeight != height) {
283
+ offset.top = offset.top + height - actualHeight
284
+ }
285
+
286
+ var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
287
+
288
+ if (delta.left) offset.left += delta.left
289
+ else offset.top += delta.top
290
+
291
+ var isVertical = /top|bottom/.test(placement)
292
+ var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
293
+ var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
294
+
295
+ $tip.offset(offset)
296
+ this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
297
+ }
298
+
299
+ Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
300
+ this.arrow()
301
+ .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
302
+ .css(isVertical ? 'top' : 'left', '')
303
+ }
304
+
305
+ Tooltip.prototype.setContent = function () {
306
+ var $tip = this.tip()
307
+ var title = this.getTitle()
308
+
309
+ $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
310
+ $tip.removeClass('fade in top bottom left right')
311
+ }
312
+
313
+ Tooltip.prototype.hide = function (callback) {
314
+ var that = this
315
+ var $tip = $(this.$tip)
316
+ var e = $.Event('hide.bs.' + this.type)
317
+
318
+ function complete() {
319
+ if (that.hoverState != 'in') $tip.detach()
320
+ if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.
321
+ that.$element
322
+ .removeAttr('aria-describedby')
323
+ .trigger('hidden.bs.' + that.type)
324
+ }
325
+ callback && callback()
326
+ }
327
+
328
+ this.$element.trigger(e)
329
+
330
+ if (e.isDefaultPrevented()) return
331
+
332
+ $tip.removeClass('in')
333
+
334
+ $.support.transition && $tip.hasClass('fade') ?
335
+ $tip
336
+ .one('bsTransitionEnd', complete)
337
+ .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
338
+ complete()
339
+
340
+ this.hoverState = null
341
+
342
+ return this
343
+ }
344
+
345
+ Tooltip.prototype.fixTitle = function () {
346
+ var $e = this.$element
347
+ if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
348
+ $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
349
+ }
350
+ }
351
+
352
+ Tooltip.prototype.hasContent = function () {
353
+ return this.getTitle()
354
+ }
355
+
356
+ Tooltip.prototype.getPosition = function ($element) {
357
+ $element = $element || this.$element
358
+
359
+ var el = $element[0]
360
+ var isBody = el.tagName == 'BODY'
361
+
362
+ var elRect = el.getBoundingClientRect()
363
+ if (elRect.width == null) {
364
+ // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
365
+ elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
366
+ }
367
+ var isSvg = window.SVGElement && el instanceof window.SVGElement
368
+ // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.
369
+ // See https://github.com/twbs/bootstrap/issues/20280
370
+ var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())
371
+ var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
372
+ var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
373
+
374
+ return $.extend({}, elRect, scroll, outerDims, elOffset)
375
+ }
376
+
377
+ Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
378
+ return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
379
+ placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
380
+ placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
381
+ /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
382
+
383
+ }
384
+
385
+ Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
386
+ var delta = { top: 0, left: 0 }
387
+ if (!this.$viewport) return delta
388
+
389
+ var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
390
+ var viewportDimensions = this.getPosition(this.$viewport)
391
+
392
+ if (/right|left/.test(placement)) {
393
+ var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
394
+ var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
395
+ if (topEdgeOffset < viewportDimensions.top) { // top overflow
396
+ delta.top = viewportDimensions.top - topEdgeOffset
397
+ } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
398
+ delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
399
+ }
400
+ } else {
401
+ var leftEdgeOffset = pos.left - viewportPadding
402
+ var rightEdgeOffset = pos.left + viewportPadding + actualWidth
403
+ if (leftEdgeOffset < viewportDimensions.left) { // left overflow
404
+ delta.left = viewportDimensions.left - leftEdgeOffset
405
+ } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
406
+ delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
407
+ }
408
+ }
409
+
410
+ return delta
411
+ }
412
+
413
+ Tooltip.prototype.getTitle = function () {
414
+ var title
415
+ var $e = this.$element
416
+ var o = this.options
417
+
418
+ title = $e.attr('data-original-title')
419
+ || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
420
+
421
+ return title
422
+ }
423
+
424
+ Tooltip.prototype.getUID = function (prefix) {
425
+ do prefix += ~~(Math.random() * 1000000)
426
+ while (document.getElementById(prefix))
427
+ return prefix
428
+ }
429
+
430
+ Tooltip.prototype.tip = function () {
431
+ if (!this.$tip) {
432
+ this.$tip = $(this.options.template)
433
+ if (this.$tip.length != 1) {
434
+ throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
435
+ }
436
+ }
437
+ return this.$tip
438
+ }
439
+
440
+ Tooltip.prototype.arrow = function () {
441
+ return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
442
+ }
443
+
444
+ Tooltip.prototype.enable = function () {
445
+ this.enabled = true
446
+ }
447
+
448
+ Tooltip.prototype.disable = function () {
449
+ this.enabled = false
450
+ }
451
+
452
+ Tooltip.prototype.toggleEnabled = function () {
453
+ this.enabled = !this.enabled
454
+ }
455
+
456
+ Tooltip.prototype.toggle = function (e) {
457
+ var self = this
458
+ if (e) {
459
+ self = $(e.currentTarget).data('bs.' + this.type)
460
+ if (!self) {
461
+ self = new this.constructor(e.currentTarget, this.getDelegateOptions())
462
+ $(e.currentTarget).data('bs.' + this.type, self)
463
+ }
464
+ }
465
+
466
+ if (e) {
467
+ self.inState.click = !self.inState.click
468
+ if (self.isInStateTrue()) self.enter(self)
469
+ else self.leave(self)
470
+ } else {
471
+ self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
472
+ }
473
+ }
474
+
475
+ Tooltip.prototype.destroy = function () {
476
+ var that = this
477
+ clearTimeout(this.timeout)
478
+ this.hide(function () {
479
+ that.$element.off('.' + that.type).removeData('bs.' + that.type)
480
+ if (that.$tip) {
481
+ that.$tip.detach()
482
+ }
483
+ that.$tip = null
484
+ that.$arrow = null
485
+ that.$viewport = null
486
+ that.$element = null
487
+ })
488
+ }
489
+
490
+
491
+ // TOOLTIP PLUGIN DEFINITION
492
+ // =========================
493
+
494
+ function Plugin(option) {
495
+ return this.each(function () {
496
+ var $this = $(this)
497
+ var data = $this.data('bs.tooltip')
498
+ var options = typeof option == 'object' && option
499
+
500
+ if (!data && /destroy|hide/.test(option)) return
501
+ if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
502
+ if (typeof option == 'string') data[option]()
503
+ })
504
+ }
505
+
506
+ var old = $.fn.tooltip
507
+
508
+ $.fn.tooltip = Plugin
509
+ $.fn.tooltip.Constructor = Tooltip
510
+
511
+
512
+ // TOOLTIP NO CONFLICT
513
+ // ===================
514
+
515
+ $.fn.tooltip.noConflict = function () {
516
+ $.fn.tooltip = old
517
+ return this
518
+ }
519
+
520
+ }(jQuery);