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
@@ -1,52 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- module ActiveRecord
3
- module ConnectionAdapters
4
- class AbstractAdapter
5
- def match _string
6
- raise I18n.t(:exception_not_implemented, scope: "lib.card.active_record_ext")
7
- end
8
-
9
- def cast_types
10
- native_database_types.merge custom_cast_types
11
- end
12
-
13
- def custom_cast_types
14
- {}
15
- end
16
- end
17
-
18
- class PostgreSQLAdapter
19
- def match string
20
- "~* #{string}"
21
- end
22
- end
23
-
24
- module MysqlCommon
25
- def match string
26
- "REGEXP #{string}"
27
- end
28
-
29
- def custom_cast_types
30
- { string: { name: "char" },
31
- integer: { name: "signed" },
32
- text: { name: "char" },
33
- float: { name: "decimal" },
34
- binary: { name: "binary" } }
35
- end
36
- end
37
-
38
- class MysqlAdapter
39
- include MysqlCommon
40
- end
41
-
42
- class Mysql2Adapter
43
- include MysqlCommon
44
- end
45
-
46
- class SQLiteAdapter
47
- def match string
48
- "REGEXP #{string}"
49
- end
50
- end
51
- end
52
- end
@@ -1,9 +0,0 @@
1
- module ActiveSupport
2
- module Callbacks
3
- class Callback
4
- def applies? object
5
- conditions_lambdas.all? { |c| c.call(object, nil) }
6
- end
7
- end
8
- end
9
- end
@@ -1,50 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- require_dependency "card/env"
3
-
4
- require "cardname"
5
-
6
- class Card
7
- class Name
8
- class ViewName < Cardname
9
- @@name2viewnameobject = {}
10
-
11
- class << self
12
- def new obj
13
- return obj if self.class === obj
14
- str = Array === obj ? obj * joint : obj.to_s
15
- if (cached_name = @@name2viewnameobject[str])
16
- cached_name
17
- else
18
- super str.strip
19
- end
20
- end
21
- end
22
-
23
- def initialize str
24
- @s = str.to_s.strip
25
- @s = @s.encode("UTF-8") if RUBYENCODING
26
- @key =
27
- if @s.index(self.class.joint)
28
- @parts = @s.split(/\s*#{JOINT_RE}\s*/)
29
- @parts << "" if @s[-1, 1] == self.class.joint
30
- @simple = false
31
- @parts.map { |p| p.to_name.key } * self.class.joint
32
- else
33
- @parts = [str]
34
- @simple = true
35
- str.empty? ? "" : simple_key
36
- end
37
- @@name2viewnameobject[str] = self
38
- end
39
-
40
- def simple_key
41
- decoded.underscore.gsub(/[^#{OK4KEY_RE}]+/, "_")
42
- .split(/_+/).reject(&:empty?) * "_"
43
- end
44
-
45
- def to_viewname
46
- self
47
- end
48
- end
49
- end
50
- end
@@ -1,80 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
-
3
- class UpdateBootswatchThemes < Card::Migration::Core
4
- THEMES = %w[Cerulean Cosmo Cyborg Darkly Flatly Journal Litera Lumen Lux
5
- Materia Minty Pulse Sandstone Simplex Slate Solar Spacelab
6
- Superhero United Yeti]
7
- .map(&:downcase).freeze
8
-
9
- def up
10
- THEMES.each do |theme_name|
11
- Skin.new(theme_name).create_or_update
12
- end
13
- Skin.new("Bootstrap default").update_scss file_name: "variables"
14
- end
15
-
16
- class Skin
17
- include ::Card::Model::SaveHelper
18
-
19
- def initialize theme_name
20
- @theme_name = theme_name
21
- @skin_name = "#{theme_name} skin"
22
- @skin_codename = @skin_name.downcase.tr(" ", "_")
23
- end
24
-
25
- def create_or_update
26
- Card.exists?(@skin_name) ? update_skin : create_skin
27
- end
28
-
29
- def create_skin
30
- Card.create! name: @skin_name,
31
- codename: @skin_codename,
32
- type_id: Card::SkinID,
33
- content: "[[themeless bootstrap skin]]\n[[+bootswatch theme]]",
34
- subcards: {
35
- "+variables" => scss_args("variables"),
36
- "+style" => scss_args("bootswatch"),
37
- "+Image" => thumbnail_args
38
- }
39
- end
40
-
41
- def update_skin
42
- update_scss file_name: "variables", field_name: "variables"
43
- update_scss file_name: "bootswatch", field_name: "style"
44
- update_tumbnail
45
- end
46
-
47
- def update_scss file_name:, field_name: file_name
48
- update_card "#{@skin_name}+#{field_name}", scss_args(file_name)
49
- end
50
-
51
- def update_tumbnail
52
- update_card "#{@skin_name}+Image", thumbnail_args
53
- end
54
-
55
- private
56
-
57
- def scss_args file_name
58
- {
59
- type_id: Card::ScssID,
60
- content: File.read(resource_path("_#{file_name}.scss"))
61
- }
62
- end
63
-
64
- def thumbnail_args
65
- {
66
- codename: "#{@skin_codename}_image",
67
- type_id: Card::ImageID,
68
- mod: :bootstrap, storage_type: :coded,
69
- image: File.open(resource_path("thumbnail.png"))
70
- }
71
- end
72
-
73
- def resource_path resource
74
- subdir = "b4_beta_themes/#{@theme_name.downcase.tr(" ","_")}/#{resource}"
75
- Card::Migration::Core.data_path subdir
76
- end
77
- end
78
- end
79
-
80
-
@@ -1,3535 +0,0 @@
1
- /*!
2
- * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com)
3
- * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
- */
6
-
7
- if (typeof jQuery === 'undefined') {
8
- throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.')
9
- }
10
-
11
- +function ($) {
12
- var version = $.fn.jquery.split(' ')[0].split('.')
13
- if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] >= 4)) {
14
- throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')
15
- }
16
- }(jQuery);
17
-
18
-
19
- +function () {
20
-
21
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
22
-
23
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
24
-
25
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
26
-
27
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
28
-
29
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
30
-
31
- /**
32
- * --------------------------------------------------------------------------
33
- * Bootstrap (v4.0.0-alpha.6): util.js
34
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
35
- * --------------------------------------------------------------------------
36
- */
37
-
38
- var Util = function ($) {
39
-
40
- /**
41
- * ------------------------------------------------------------------------
42
- * Private TransitionEnd Helpers
43
- * ------------------------------------------------------------------------
44
- */
45
-
46
- var transition = false;
47
-
48
- var MAX_UID = 1000000;
49
-
50
- var TransitionEndEvent = {
51
- WebkitTransition: 'webkitTransitionEnd',
52
- MozTransition: 'transitionend',
53
- OTransition: 'oTransitionEnd otransitionend',
54
- transition: 'transitionend'
55
- };
56
-
57
- // shoutout AngusCroll (https://goo.gl/pxwQGp)
58
- function toType(obj) {
59
- return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
60
- }
61
-
62
- function isElement(obj) {
63
- return (obj[0] || obj).nodeType;
64
- }
65
-
66
- function getSpecialTransitionEndEvent() {
67
- return {
68
- bindType: transition.end,
69
- delegateType: transition.end,
70
- handle: function handle(event) {
71
- if ($(event.target).is(this)) {
72
- return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
73
- }
74
- return undefined;
75
- }
76
- };
77
- }
78
-
79
- function transitionEndTest() {
80
- if (window.QUnit) {
81
- return false;
82
- }
83
-
84
- var el = document.createElement('bootstrap');
85
-
86
- for (var name in TransitionEndEvent) {
87
- if (el.style[name] !== undefined) {
88
- return {
89
- end: TransitionEndEvent[name]
90
- };
91
- }
92
- }
93
-
94
- return false;
95
- }
96
-
97
- function transitionEndEmulator(duration) {
98
- var _this = this;
99
-
100
- var called = false;
101
-
102
- $(this).one(Util.TRANSITION_END, function () {
103
- called = true;
104
- });
105
-
106
- setTimeout(function () {
107
- if (!called) {
108
- Util.triggerTransitionEnd(_this);
109
- }
110
- }, duration);
111
-
112
- return this;
113
- }
114
-
115
- function setTransitionEndSupport() {
116
- transition = transitionEndTest();
117
-
118
- $.fn.emulateTransitionEnd = transitionEndEmulator;
119
-
120
- if (Util.supportsTransitionEnd()) {
121
- $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
122
- }
123
- }
124
-
125
- /**
126
- * --------------------------------------------------------------------------
127
- * Public Util Api
128
- * --------------------------------------------------------------------------
129
- */
130
-
131
- var Util = {
132
-
133
- TRANSITION_END: 'bsTransitionEnd',
134
-
135
- getUID: function getUID(prefix) {
136
- do {
137
- // eslint-disable-next-line no-bitwise
138
- prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
139
- } while (document.getElementById(prefix));
140
- return prefix;
141
- },
142
- getSelectorFromElement: function getSelectorFromElement(element) {
143
- var selector = element.getAttribute('data-target');
144
-
145
- if (!selector) {
146
- selector = element.getAttribute('href') || '';
147
- selector = /^#[a-z]/i.test(selector) ? selector : null;
148
- }
149
-
150
- return selector;
151
- },
152
- reflow: function reflow(element) {
153
- return element.offsetHeight;
154
- },
155
- triggerTransitionEnd: function triggerTransitionEnd(element) {
156
- $(element).trigger(transition.end);
157
- },
158
- supportsTransitionEnd: function supportsTransitionEnd() {
159
- return Boolean(transition);
160
- },
161
- typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
162
- for (var property in configTypes) {
163
- if (configTypes.hasOwnProperty(property)) {
164
- var expectedTypes = configTypes[property];
165
- var value = config[property];
166
- var valueType = value && isElement(value) ? 'element' : toType(value);
167
-
168
- if (!new RegExp(expectedTypes).test(valueType)) {
169
- throw new Error(componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".'));
170
- }
171
- }
172
- }
173
- }
174
- };
175
-
176
- setTransitionEndSupport();
177
-
178
- return Util;
179
- }(jQuery);
180
-
181
- /**
182
- * --------------------------------------------------------------------------
183
- * Bootstrap (v4.0.0-alpha.6): alert.js
184
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
185
- * --------------------------------------------------------------------------
186
- */
187
-
188
- var Alert = function ($) {
189
-
190
- /**
191
- * ------------------------------------------------------------------------
192
- * Constants
193
- * ------------------------------------------------------------------------
194
- */
195
-
196
- var NAME = 'alert';
197
- var VERSION = '4.0.0-alpha.6';
198
- var DATA_KEY = 'bs.alert';
199
- var EVENT_KEY = '.' + DATA_KEY;
200
- var DATA_API_KEY = '.data-api';
201
- var JQUERY_NO_CONFLICT = $.fn[NAME];
202
- var TRANSITION_DURATION = 150;
203
-
204
- var Selector = {
205
- DISMISS: '[data-dismiss="alert"]'
206
- };
207
-
208
- var Event = {
209
- CLOSE: 'close' + EVENT_KEY,
210
- CLOSED: 'closed' + EVENT_KEY,
211
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
212
- };
213
-
214
- var ClassName = {
215
- ALERT: 'alert',
216
- FADE: 'fade',
217
- SHOW: 'show'
218
- };
219
-
220
- /**
221
- * ------------------------------------------------------------------------
222
- * Class Definition
223
- * ------------------------------------------------------------------------
224
- */
225
-
226
- var Alert = function () {
227
- function Alert(element) {
228
- _classCallCheck(this, Alert);
229
-
230
- this._element = element;
231
- }
232
-
233
- // getters
234
-
235
- // public
236
-
237
- Alert.prototype.close = function close(element) {
238
- element = element || this._element;
239
-
240
- var rootElement = this._getRootElement(element);
241
- var customEvent = this._triggerCloseEvent(rootElement);
242
-
243
- if (customEvent.isDefaultPrevented()) {
244
- return;
245
- }
246
-
247
- this._removeElement(rootElement);
248
- };
249
-
250
- Alert.prototype.dispose = function dispose() {
251
- $.removeData(this._element, DATA_KEY);
252
- this._element = null;
253
- };
254
-
255
- // private
256
-
257
- Alert.prototype._getRootElement = function _getRootElement(element) {
258
- var selector = Util.getSelectorFromElement(element);
259
- var parent = false;
260
-
261
- if (selector) {
262
- parent = $(selector)[0];
263
- }
264
-
265
- if (!parent) {
266
- parent = $(element).closest('.' + ClassName.ALERT)[0];
267
- }
268
-
269
- return parent;
270
- };
271
-
272
- Alert.prototype._triggerCloseEvent = function _triggerCloseEvent(element) {
273
- var closeEvent = $.Event(Event.CLOSE);
274
-
275
- $(element).trigger(closeEvent);
276
- return closeEvent;
277
- };
278
-
279
- Alert.prototype._removeElement = function _removeElement(element) {
280
- var _this2 = this;
281
-
282
- $(element).removeClass(ClassName.SHOW);
283
-
284
- if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
285
- this._destroyElement(element);
286
- return;
287
- }
288
-
289
- $(element).one(Util.TRANSITION_END, function (event) {
290
- return _this2._destroyElement(element, event);
291
- }).emulateTransitionEnd(TRANSITION_DURATION);
292
- };
293
-
294
- Alert.prototype._destroyElement = function _destroyElement(element) {
295
- $(element).detach().trigger(Event.CLOSED).remove();
296
- };
297
-
298
- // static
299
-
300
- Alert._jQueryInterface = function _jQueryInterface(config) {
301
- return this.each(function () {
302
- var $element = $(this);
303
- var data = $element.data(DATA_KEY);
304
-
305
- if (!data) {
306
- data = new Alert(this);
307
- $element.data(DATA_KEY, data);
308
- }
309
-
310
- if (config === 'close') {
311
- data[config](this);
312
- }
313
- });
314
- };
315
-
316
- Alert._handleDismiss = function _handleDismiss(alertInstance) {
317
- return function (event) {
318
- if (event) {
319
- event.preventDefault();
320
- }
321
-
322
- alertInstance.close(this);
323
- };
324
- };
325
-
326
- _createClass(Alert, null, [{
327
- key: 'VERSION',
328
- get: function get() {
329
- return VERSION;
330
- }
331
- }]);
332
-
333
- return Alert;
334
- }();
335
-
336
- /**
337
- * ------------------------------------------------------------------------
338
- * Data Api implementation
339
- * ------------------------------------------------------------------------
340
- */
341
-
342
- $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
343
-
344
- /**
345
- * ------------------------------------------------------------------------
346
- * jQuery
347
- * ------------------------------------------------------------------------
348
- */
349
-
350
- $.fn[NAME] = Alert._jQueryInterface;
351
- $.fn[NAME].Constructor = Alert;
352
- $.fn[NAME].noConflict = function () {
353
- $.fn[NAME] = JQUERY_NO_CONFLICT;
354
- return Alert._jQueryInterface;
355
- };
356
-
357
- return Alert;
358
- }(jQuery);
359
-
360
- /**
361
- * --------------------------------------------------------------------------
362
- * Bootstrap (v4.0.0-alpha.6): button.js
363
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
364
- * --------------------------------------------------------------------------
365
- */
366
-
367
- var Button = function ($) {
368
-
369
- /**
370
- * ------------------------------------------------------------------------
371
- * Constants
372
- * ------------------------------------------------------------------------
373
- */
374
-
375
- var NAME = 'button';
376
- var VERSION = '4.0.0-alpha.6';
377
- var DATA_KEY = 'bs.button';
378
- var EVENT_KEY = '.' + DATA_KEY;
379
- var DATA_API_KEY = '.data-api';
380
- var JQUERY_NO_CONFLICT = $.fn[NAME];
381
-
382
- var ClassName = {
383
- ACTIVE: 'active',
384
- BUTTON: 'btn',
385
- FOCUS: 'focus'
386
- };
387
-
388
- var Selector = {
389
- DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
390
- DATA_TOGGLE: '[data-toggle="buttons"]',
391
- INPUT: 'input',
392
- ACTIVE: '.active',
393
- BUTTON: '.btn'
394
- };
395
-
396
- var Event = {
397
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
398
- FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY)
399
- };
400
-
401
- /**
402
- * ------------------------------------------------------------------------
403
- * Class Definition
404
- * ------------------------------------------------------------------------
405
- */
406
-
407
- var Button = function () {
408
- function Button(element) {
409
- _classCallCheck(this, Button);
410
-
411
- this._element = element;
412
- }
413
-
414
- // getters
415
-
416
- // public
417
-
418
- Button.prototype.toggle = function toggle() {
419
- var triggerChangeEvent = true;
420
- var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
421
-
422
- if (rootElement) {
423
- var input = $(this._element).find(Selector.INPUT)[0];
424
-
425
- if (input) {
426
- if (input.type === 'radio') {
427
- if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {
428
- triggerChangeEvent = false;
429
- } else {
430
- var activeElement = $(rootElement).find(Selector.ACTIVE)[0];
431
-
432
- if (activeElement) {
433
- $(activeElement).removeClass(ClassName.ACTIVE);
434
- }
435
- }
436
- }
437
-
438
- if (triggerChangeEvent) {
439
- input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
440
- $(input).trigger('change');
441
- }
442
-
443
- input.focus();
444
- }
445
- }
446
-
447
- this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
448
-
449
- if (triggerChangeEvent) {
450
- $(this._element).toggleClass(ClassName.ACTIVE);
451
- }
452
- };
453
-
454
- Button.prototype.dispose = function dispose() {
455
- $.removeData(this._element, DATA_KEY);
456
- this._element = null;
457
- };
458
-
459
- // static
460
-
461
- Button._jQueryInterface = function _jQueryInterface(config) {
462
- return this.each(function () {
463
- var data = $(this).data(DATA_KEY);
464
-
465
- if (!data) {
466
- data = new Button(this);
467
- $(this).data(DATA_KEY, data);
468
- }
469
-
470
- if (config === 'toggle') {
471
- data[config]();
472
- }
473
- });
474
- };
475
-
476
- _createClass(Button, null, [{
477
- key: 'VERSION',
478
- get: function get() {
479
- return VERSION;
480
- }
481
- }]);
482
-
483
- return Button;
484
- }();
485
-
486
- /**
487
- * ------------------------------------------------------------------------
488
- * Data Api implementation
489
- * ------------------------------------------------------------------------
490
- */
491
-
492
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
493
- event.preventDefault();
494
-
495
- var button = event.target;
496
-
497
- if (!$(button).hasClass(ClassName.BUTTON)) {
498
- button = $(button).closest(Selector.BUTTON);
499
- }
500
-
501
- Button._jQueryInterface.call($(button), 'toggle');
502
- }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
503
- var button = $(event.target).closest(Selector.BUTTON)[0];
504
- $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
505
- });
506
-
507
- /**
508
- * ------------------------------------------------------------------------
509
- * jQuery
510
- * ------------------------------------------------------------------------
511
- */
512
-
513
- $.fn[NAME] = Button._jQueryInterface;
514
- $.fn[NAME].Constructor = Button;
515
- $.fn[NAME].noConflict = function () {
516
- $.fn[NAME] = JQUERY_NO_CONFLICT;
517
- return Button._jQueryInterface;
518
- };
519
-
520
- return Button;
521
- }(jQuery);
522
-
523
- /**
524
- * --------------------------------------------------------------------------
525
- * Bootstrap (v4.0.0-alpha.6): carousel.js
526
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
527
- * --------------------------------------------------------------------------
528
- */
529
-
530
- var Carousel = function ($) {
531
-
532
- /**
533
- * ------------------------------------------------------------------------
534
- * Constants
535
- * ------------------------------------------------------------------------
536
- */
537
-
538
- var NAME = 'carousel';
539
- var VERSION = '4.0.0-alpha.6';
540
- var DATA_KEY = 'bs.carousel';
541
- var EVENT_KEY = '.' + DATA_KEY;
542
- var DATA_API_KEY = '.data-api';
543
- var JQUERY_NO_CONFLICT = $.fn[NAME];
544
- var TRANSITION_DURATION = 600;
545
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
546
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
547
-
548
- var Default = {
549
- interval: 5000,
550
- keyboard: true,
551
- slide: false,
552
- pause: 'hover',
553
- wrap: true
554
- };
555
-
556
- var DefaultType = {
557
- interval: '(number|boolean)',
558
- keyboard: 'boolean',
559
- slide: '(boolean|string)',
560
- pause: '(string|boolean)',
561
- wrap: 'boolean'
562
- };
563
-
564
- var Direction = {
565
- NEXT: 'next',
566
- PREV: 'prev',
567
- LEFT: 'left',
568
- RIGHT: 'right'
569
- };
570
-
571
- var Event = {
572
- SLIDE: 'slide' + EVENT_KEY,
573
- SLID: 'slid' + EVENT_KEY,
574
- KEYDOWN: 'keydown' + EVENT_KEY,
575
- MOUSEENTER: 'mouseenter' + EVENT_KEY,
576
- MOUSELEAVE: 'mouseleave' + EVENT_KEY,
577
- LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY,
578
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
579
- };
580
-
581
- var ClassName = {
582
- CAROUSEL: 'carousel',
583
- ACTIVE: 'active',
584
- SLIDE: 'slide',
585
- RIGHT: 'carousel-item-right',
586
- LEFT: 'carousel-item-left',
587
- NEXT: 'carousel-item-next',
588
- PREV: 'carousel-item-prev',
589
- ITEM: 'carousel-item'
590
- };
591
-
592
- var Selector = {
593
- ACTIVE: '.active',
594
- ACTIVE_ITEM: '.active.carousel-item',
595
- ITEM: '.carousel-item',
596
- NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
597
- INDICATORS: '.carousel-indicators',
598
- DATA_SLIDE: '[data-slide], [data-slide-to]',
599
- DATA_RIDE: '[data-ride="carousel"]'
600
- };
601
-
602
- /**
603
- * ------------------------------------------------------------------------
604
- * Class Definition
605
- * ------------------------------------------------------------------------
606
- */
607
-
608
- var Carousel = function () {
609
- function Carousel(element, config) {
610
- _classCallCheck(this, Carousel);
611
-
612
- this._items = null;
613
- this._interval = null;
614
- this._activeElement = null;
615
-
616
- this._isPaused = false;
617
- this._isSliding = false;
618
-
619
- this._config = this._getConfig(config);
620
- this._element = $(element)[0];
621
- this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
622
-
623
- this._addEventListeners();
624
- }
625
-
626
- // getters
627
-
628
- // public
629
-
630
- Carousel.prototype.next = function next() {
631
- if (this._isSliding) {
632
- throw new Error('Carousel is sliding');
633
- }
634
- this._slide(Direction.NEXT);
635
- };
636
-
637
- Carousel.prototype.nextWhenVisible = function nextWhenVisible() {
638
- // Don't call next when the page isn't visible
639
- if (!document.hidden) {
640
- this.next();
641
- }
642
- };
643
-
644
- Carousel.prototype.prev = function prev() {
645
- if (this._isSliding) {
646
- throw new Error('Carousel is sliding');
647
- }
648
- this._slide(Direction.PREVIOUS);
649
- };
650
-
651
- Carousel.prototype.pause = function pause(event) {
652
- if (!event) {
653
- this._isPaused = true;
654
- }
655
-
656
- if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
657
- Util.triggerTransitionEnd(this._element);
658
- this.cycle(true);
659
- }
660
-
661
- clearInterval(this._interval);
662
- this._interval = null;
663
- };
664
-
665
- Carousel.prototype.cycle = function cycle(event) {
666
- if (!event) {
667
- this._isPaused = false;
668
- }
669
-
670
- if (this._interval) {
671
- clearInterval(this._interval);
672
- this._interval = null;
673
- }
674
-
675
- if (this._config.interval && !this._isPaused) {
676
- this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
677
- }
678
- };
679
-
680
- Carousel.prototype.to = function to(index) {
681
- var _this3 = this;
682
-
683
- this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
684
-
685
- var activeIndex = this._getItemIndex(this._activeElement);
686
-
687
- if (index > this._items.length - 1 || index < 0) {
688
- return;
689
- }
690
-
691
- if (this._isSliding) {
692
- $(this._element).one(Event.SLID, function () {
693
- return _this3.to(index);
694
- });
695
- return;
696
- }
697
-
698
- if (activeIndex === index) {
699
- this.pause();
700
- this.cycle();
701
- return;
702
- }
703
-
704
- var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS;
705
-
706
- this._slide(direction, this._items[index]);
707
- };
708
-
709
- Carousel.prototype.dispose = function dispose() {
710
- $(this._element).off(EVENT_KEY);
711
- $.removeData(this._element, DATA_KEY);
712
-
713
- this._items = null;
714
- this._config = null;
715
- this._element = null;
716
- this._interval = null;
717
- this._isPaused = null;
718
- this._isSliding = null;
719
- this._activeElement = null;
720
- this._indicatorsElement = null;
721
- };
722
-
723
- // private
724
-
725
- Carousel.prototype._getConfig = function _getConfig(config) {
726
- config = $.extend({}, Default, config);
727
- Util.typeCheckConfig(NAME, config, DefaultType);
728
- return config;
729
- };
730
-
731
- Carousel.prototype._addEventListeners = function _addEventListeners() {
732
- var _this4 = this;
733
-
734
- if (this._config.keyboard) {
735
- $(this._element).on(Event.KEYDOWN, function (event) {
736
- return _this4._keydown(event);
737
- });
738
- }
739
-
740
- if (this._config.pause === 'hover' && !('ontouchstart' in document.documentElement)) {
741
- $(this._element).on(Event.MOUSEENTER, function (event) {
742
- return _this4.pause(event);
743
- }).on(Event.MOUSELEAVE, function (event) {
744
- return _this4.cycle(event);
745
- });
746
- }
747
- };
748
-
749
- Carousel.prototype._keydown = function _keydown(event) {
750
- if (/input|textarea/i.test(event.target.tagName)) {
751
- return;
752
- }
753
-
754
- switch (event.which) {
755
- case ARROW_LEFT_KEYCODE:
756
- event.preventDefault();
757
- this.prev();
758
- break;
759
- case ARROW_RIGHT_KEYCODE:
760
- event.preventDefault();
761
- this.next();
762
- break;
763
- default:
764
- return;
765
- }
766
- };
767
-
768
- Carousel.prototype._getItemIndex = function _getItemIndex(element) {
769
- this._items = $.makeArray($(element).parent().find(Selector.ITEM));
770
- return this._items.indexOf(element);
771
- };
772
-
773
- Carousel.prototype._getItemByDirection = function _getItemByDirection(direction, activeElement) {
774
- var isNextDirection = direction === Direction.NEXT;
775
- var isPrevDirection = direction === Direction.PREVIOUS;
776
- var activeIndex = this._getItemIndex(activeElement);
777
- var lastItemIndex = this._items.length - 1;
778
- var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
779
-
780
- if (isGoingToWrap && !this._config.wrap) {
781
- return activeElement;
782
- }
783
-
784
- var delta = direction === Direction.PREVIOUS ? -1 : 1;
785
- var itemIndex = (activeIndex + delta) % this._items.length;
786
-
787
- return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
788
- };
789
-
790
- Carousel.prototype._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
791
- var slideEvent = $.Event(Event.SLIDE, {
792
- relatedTarget: relatedTarget,
793
- direction: eventDirectionName
794
- });
795
-
796
- $(this._element).trigger(slideEvent);
797
-
798
- return slideEvent;
799
- };
800
-
801
- Carousel.prototype._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
802
- if (this._indicatorsElement) {
803
- $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
804
-
805
- var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
806
-
807
- if (nextIndicator) {
808
- $(nextIndicator).addClass(ClassName.ACTIVE);
809
- }
810
- }
811
- };
812
-
813
- Carousel.prototype._slide = function _slide(direction, element) {
814
- var _this5 = this;
815
-
816
- var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
817
- var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
818
-
819
- var isCycling = Boolean(this._interval);
820
-
821
- var directionalClassName = void 0;
822
- var orderClassName = void 0;
823
- var eventDirectionName = void 0;
824
-
825
- if (direction === Direction.NEXT) {
826
- directionalClassName = ClassName.LEFT;
827
- orderClassName = ClassName.NEXT;
828
- eventDirectionName = Direction.LEFT;
829
- } else {
830
- directionalClassName = ClassName.RIGHT;
831
- orderClassName = ClassName.PREV;
832
- eventDirectionName = Direction.RIGHT;
833
- }
834
-
835
- if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
836
- this._isSliding = false;
837
- return;
838
- }
839
-
840
- var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
841
- if (slideEvent.isDefaultPrevented()) {
842
- return;
843
- }
844
-
845
- if (!activeElement || !nextElement) {
846
- // some weirdness is happening, so we bail
847
- return;
848
- }
849
-
850
- this._isSliding = true;
851
-
852
- if (isCycling) {
853
- this.pause();
854
- }
855
-
856
- this._setActiveIndicatorElement(nextElement);
857
-
858
- var slidEvent = $.Event(Event.SLID, {
859
- relatedTarget: nextElement,
860
- direction: eventDirectionName
861
- });
862
-
863
- if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
864
-
865
- $(nextElement).addClass(orderClassName);
866
-
867
- Util.reflow(nextElement);
868
-
869
- $(activeElement).addClass(directionalClassName);
870
- $(nextElement).addClass(directionalClassName);
871
-
872
- $(activeElement).one(Util.TRANSITION_END, function () {
873
- $(nextElement).removeClass(directionalClassName + ' ' + orderClassName).addClass(ClassName.ACTIVE);
874
-
875
- $(activeElement).removeClass(ClassName.ACTIVE + ' ' + orderClassName + ' ' + directionalClassName);
876
-
877
- _this5._isSliding = false;
878
-
879
- setTimeout(function () {
880
- return $(_this5._element).trigger(slidEvent);
881
- }, 0);
882
- }).emulateTransitionEnd(TRANSITION_DURATION);
883
- } else {
884
- $(activeElement).removeClass(ClassName.ACTIVE);
885
- $(nextElement).addClass(ClassName.ACTIVE);
886
-
887
- this._isSliding = false;
888
- $(this._element).trigger(slidEvent);
889
- }
890
-
891
- if (isCycling) {
892
- this.cycle();
893
- }
894
- };
895
-
896
- // static
897
-
898
- Carousel._jQueryInterface = function _jQueryInterface(config) {
899
- return this.each(function () {
900
- var data = $(this).data(DATA_KEY);
901
- var _config = $.extend({}, Default, $(this).data());
902
-
903
- if ((typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') {
904
- $.extend(_config, config);
905
- }
906
-
907
- var action = typeof config === 'string' ? config : _config.slide;
908
-
909
- if (!data) {
910
- data = new Carousel(this, _config);
911
- $(this).data(DATA_KEY, data);
912
- }
913
-
914
- if (typeof config === 'number') {
915
- data.to(config);
916
- } else if (typeof action === 'string') {
917
- if (data[action] === undefined) {
918
- throw new Error('No method named "' + action + '"');
919
- }
920
- data[action]();
921
- } else if (_config.interval) {
922
- data.pause();
923
- data.cycle();
924
- }
925
- });
926
- };
927
-
928
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
929
- var selector = Util.getSelectorFromElement(this);
930
-
931
- if (!selector) {
932
- return;
933
- }
934
-
935
- var target = $(selector)[0];
936
-
937
- if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
938
- return;
939
- }
940
-
941
- var config = $.extend({}, $(target).data(), $(this).data());
942
- var slideIndex = this.getAttribute('data-slide-to');
943
-
944
- if (slideIndex) {
945
- config.interval = false;
946
- }
947
-
948
- Carousel._jQueryInterface.call($(target), config);
949
-
950
- if (slideIndex) {
951
- $(target).data(DATA_KEY).to(slideIndex);
952
- }
953
-
954
- event.preventDefault();
955
- };
956
-
957
- _createClass(Carousel, null, [{
958
- key: 'VERSION',
959
- get: function get() {
960
- return VERSION;
961
- }
962
- }, {
963
- key: 'Default',
964
- get: function get() {
965
- return Default;
966
- }
967
- }]);
968
-
969
- return Carousel;
970
- }();
971
-
972
- /**
973
- * ------------------------------------------------------------------------
974
- * Data Api implementation
975
- * ------------------------------------------------------------------------
976
- */
977
-
978
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
979
-
980
- $(window).on(Event.LOAD_DATA_API, function () {
981
- $(Selector.DATA_RIDE).each(function () {
982
- var $carousel = $(this);
983
- Carousel._jQueryInterface.call($carousel, $carousel.data());
984
- });
985
- });
986
-
987
- /**
988
- * ------------------------------------------------------------------------
989
- * jQuery
990
- * ------------------------------------------------------------------------
991
- */
992
-
993
- $.fn[NAME] = Carousel._jQueryInterface;
994
- $.fn[NAME].Constructor = Carousel;
995
- $.fn[NAME].noConflict = function () {
996
- $.fn[NAME] = JQUERY_NO_CONFLICT;
997
- return Carousel._jQueryInterface;
998
- };
999
-
1000
- return Carousel;
1001
- }(jQuery);
1002
-
1003
- /**
1004
- * --------------------------------------------------------------------------
1005
- * Bootstrap (v4.0.0-alpha.6): collapse.js
1006
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1007
- * --------------------------------------------------------------------------
1008
- */
1009
-
1010
- var Collapse = function ($) {
1011
-
1012
- /**
1013
- * ------------------------------------------------------------------------
1014
- * Constants
1015
- * ------------------------------------------------------------------------
1016
- */
1017
-
1018
- var NAME = 'collapse';
1019
- var VERSION = '4.0.0-alpha.6';
1020
- var DATA_KEY = 'bs.collapse';
1021
- var EVENT_KEY = '.' + DATA_KEY;
1022
- var DATA_API_KEY = '.data-api';
1023
- var JQUERY_NO_CONFLICT = $.fn[NAME];
1024
- var TRANSITION_DURATION = 600;
1025
-
1026
- var Default = {
1027
- toggle: true,
1028
- parent: ''
1029
- };
1030
-
1031
- var DefaultType = {
1032
- toggle: 'boolean',
1033
- parent: 'string'
1034
- };
1035
-
1036
- var Event = {
1037
- SHOW: 'show' + EVENT_KEY,
1038
- SHOWN: 'shown' + EVENT_KEY,
1039
- HIDE: 'hide' + EVENT_KEY,
1040
- HIDDEN: 'hidden' + EVENT_KEY,
1041
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
1042
- };
1043
-
1044
- var ClassName = {
1045
- SHOW: 'show',
1046
- COLLAPSE: 'collapse',
1047
- COLLAPSING: 'collapsing',
1048
- COLLAPSED: 'collapsed'
1049
- };
1050
-
1051
- var Dimension = {
1052
- WIDTH: 'width',
1053
- HEIGHT: 'height'
1054
- };
1055
-
1056
- var Selector = {
1057
- ACTIVES: '.card > .show, .card > .collapsing',
1058
- DATA_TOGGLE: '[data-toggle="collapse"]'
1059
- };
1060
-
1061
- /**
1062
- * ------------------------------------------------------------------------
1063
- * Class Definition
1064
- * ------------------------------------------------------------------------
1065
- */
1066
-
1067
- var Collapse = function () {
1068
- function Collapse(element, config) {
1069
- _classCallCheck(this, Collapse);
1070
-
1071
- this._isTransitioning = false;
1072
- this._element = element;
1073
- this._config = this._getConfig(config);
1074
- this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
1075
-
1076
- this._parent = this._config.parent ? this._getParent() : null;
1077
-
1078
- if (!this._config.parent) {
1079
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
1080
- }
1081
-
1082
- if (this._config.toggle) {
1083
- this.toggle();
1084
- }
1085
- }
1086
-
1087
- // getters
1088
-
1089
- // public
1090
-
1091
- Collapse.prototype.toggle = function toggle() {
1092
- if ($(this._element).hasClass(ClassName.SHOW)) {
1093
- this.hide();
1094
- } else {
1095
- this.show();
1096
- }
1097
- };
1098
-
1099
- Collapse.prototype.show = function show() {
1100
- var _this6 = this;
1101
-
1102
- if (this._isTransitioning) {
1103
- throw new Error('Collapse is transitioning');
1104
- }
1105
-
1106
- if ($(this._element).hasClass(ClassName.SHOW)) {
1107
- return;
1108
- }
1109
-
1110
- var actives = void 0;
1111
- var activesData = void 0;
1112
-
1113
- if (this._parent) {
1114
- actives = $.makeArray($(this._parent).find(Selector.ACTIVES));
1115
- if (!actives.length) {
1116
- actives = null;
1117
- }
1118
- }
1119
-
1120
- if (actives) {
1121
- activesData = $(actives).data(DATA_KEY);
1122
- if (activesData && activesData._isTransitioning) {
1123
- return;
1124
- }
1125
- }
1126
-
1127
- var startEvent = $.Event(Event.SHOW);
1128
- $(this._element).trigger(startEvent);
1129
- if (startEvent.isDefaultPrevented()) {
1130
- return;
1131
- }
1132
-
1133
- if (actives) {
1134
- Collapse._jQueryInterface.call($(actives), 'hide');
1135
- if (!activesData) {
1136
- $(actives).data(DATA_KEY, null);
1137
- }
1138
- }
1139
-
1140
- var dimension = this._getDimension();
1141
-
1142
- $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
1143
-
1144
- this._element.style[dimension] = 0;
1145
- this._element.setAttribute('aria-expanded', true);
1146
-
1147
- if (this._triggerArray.length) {
1148
- $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
1149
- }
1150
-
1151
- this.setTransitioning(true);
1152
-
1153
- var complete = function complete() {
1154
- $(_this6._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
1155
-
1156
- _this6._element.style[dimension] = '';
1157
-
1158
- _this6.setTransitioning(false);
1159
-
1160
- $(_this6._element).trigger(Event.SHOWN);
1161
- };
1162
-
1163
- if (!Util.supportsTransitionEnd()) {
1164
- complete();
1165
- return;
1166
- }
1167
-
1168
- var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
1169
- var scrollSize = 'scroll' + capitalizedDimension;
1170
-
1171
- $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
1172
-
1173
- this._element.style[dimension] = this._element[scrollSize] + 'px';
1174
- };
1175
-
1176
- Collapse.prototype.hide = function hide() {
1177
- var _this7 = this;
1178
-
1179
- if (this._isTransitioning) {
1180
- throw new Error('Collapse is transitioning');
1181
- }
1182
-
1183
- if (!$(this._element).hasClass(ClassName.SHOW)) {
1184
- return;
1185
- }
1186
-
1187
- var startEvent = $.Event(Event.HIDE);
1188
- $(this._element).trigger(startEvent);
1189
- if (startEvent.isDefaultPrevented()) {
1190
- return;
1191
- }
1192
-
1193
- var dimension = this._getDimension();
1194
- var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight';
1195
-
1196
- this._element.style[dimension] = this._element[offsetDimension] + 'px';
1197
-
1198
- Util.reflow(this._element);
1199
-
1200
- $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
1201
-
1202
- this._element.setAttribute('aria-expanded', false);
1203
-
1204
- if (this._triggerArray.length) {
1205
- $(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
1206
- }
1207
-
1208
- this.setTransitioning(true);
1209
-
1210
- var complete = function complete() {
1211
- _this7.setTransitioning(false);
1212
- $(_this7._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
1213
- };
1214
-
1215
- this._element.style[dimension] = '';
1216
-
1217
- if (!Util.supportsTransitionEnd()) {
1218
- complete();
1219
- return;
1220
- }
1221
-
1222
- $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
1223
- };
1224
-
1225
- Collapse.prototype.setTransitioning = function setTransitioning(isTransitioning) {
1226
- this._isTransitioning = isTransitioning;
1227
- };
1228
-
1229
- Collapse.prototype.dispose = function dispose() {
1230
- $.removeData(this._element, DATA_KEY);
1231
-
1232
- this._config = null;
1233
- this._parent = null;
1234
- this._element = null;
1235
- this._triggerArray = null;
1236
- this._isTransitioning = null;
1237
- };
1238
-
1239
- // private
1240
-
1241
- Collapse.prototype._getConfig = function _getConfig(config) {
1242
- config = $.extend({}, Default, config);
1243
- config.toggle = Boolean(config.toggle); // coerce string values
1244
- Util.typeCheckConfig(NAME, config, DefaultType);
1245
- return config;
1246
- };
1247
-
1248
- Collapse.prototype._getDimension = function _getDimension() {
1249
- var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
1250
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
1251
- };
1252
-
1253
- Collapse.prototype._getParent = function _getParent() {
1254
- var _this8 = this;
1255
-
1256
- var parent = $(this._config.parent)[0];
1257
- var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]';
1258
-
1259
- $(parent).find(selector).each(function (i, element) {
1260
- _this8._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
1261
- });
1262
-
1263
- return parent;
1264
- };
1265
-
1266
- Collapse.prototype._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
1267
- if (element) {
1268
- var isOpen = $(element).hasClass(ClassName.SHOW);
1269
- element.setAttribute('aria-expanded', isOpen);
1270
-
1271
- if (triggerArray.length) {
1272
- $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1273
- }
1274
- }
1275
- };
1276
-
1277
- // static
1278
-
1279
- Collapse._getTargetFromElement = function _getTargetFromElement(element) {
1280
- var selector = Util.getSelectorFromElement(element);
1281
- return selector ? $(selector)[0] : null;
1282
- };
1283
-
1284
- Collapse._jQueryInterface = function _jQueryInterface(config) {
1285
- return this.each(function () {
1286
- var $this = $(this);
1287
- var data = $this.data(DATA_KEY);
1288
- var _config = $.extend({}, Default, $this.data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);
1289
-
1290
- if (!data && _config.toggle && /show|hide/.test(config)) {
1291
- _config.toggle = false;
1292
- }
1293
-
1294
- if (!data) {
1295
- data = new Collapse(this, _config);
1296
- $this.data(DATA_KEY, data);
1297
- }
1298
-
1299
- if (typeof config === 'string') {
1300
- if (data[config] === undefined) {
1301
- throw new Error('No method named "' + config + '"');
1302
- }
1303
- data[config]();
1304
- }
1305
- });
1306
- };
1307
-
1308
- _createClass(Collapse, null, [{
1309
- key: 'VERSION',
1310
- get: function get() {
1311
- return VERSION;
1312
- }
1313
- }, {
1314
- key: 'Default',
1315
- get: function get() {
1316
- return Default;
1317
- }
1318
- }]);
1319
-
1320
- return Collapse;
1321
- }();
1322
-
1323
- /**
1324
- * ------------------------------------------------------------------------
1325
- * Data Api implementation
1326
- * ------------------------------------------------------------------------
1327
- */
1328
-
1329
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
1330
- event.preventDefault();
1331
-
1332
- var target = Collapse._getTargetFromElement(this);
1333
- var data = $(target).data(DATA_KEY);
1334
- var config = data ? 'toggle' : $(this).data();
1335
-
1336
- Collapse._jQueryInterface.call($(target), config);
1337
- });
1338
-
1339
- /**
1340
- * ------------------------------------------------------------------------
1341
- * jQuery
1342
- * ------------------------------------------------------------------------
1343
- */
1344
-
1345
- $.fn[NAME] = Collapse._jQueryInterface;
1346
- $.fn[NAME].Constructor = Collapse;
1347
- $.fn[NAME].noConflict = function () {
1348
- $.fn[NAME] = JQUERY_NO_CONFLICT;
1349
- return Collapse._jQueryInterface;
1350
- };
1351
-
1352
- return Collapse;
1353
- }(jQuery);
1354
-
1355
- /**
1356
- * --------------------------------------------------------------------------
1357
- * Bootstrap (v4.0.0-alpha.6): dropdown.js
1358
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1359
- * --------------------------------------------------------------------------
1360
- */
1361
-
1362
- var Dropdown = function ($) {
1363
-
1364
- /**
1365
- * ------------------------------------------------------------------------
1366
- * Constants
1367
- * ------------------------------------------------------------------------
1368
- */
1369
-
1370
- var NAME = 'dropdown';
1371
- var VERSION = '4.0.0-alpha.6';
1372
- var DATA_KEY = 'bs.dropdown';
1373
- var EVENT_KEY = '.' + DATA_KEY;
1374
- var DATA_API_KEY = '.data-api';
1375
- var JQUERY_NO_CONFLICT = $.fn[NAME];
1376
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
1377
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
1378
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
1379
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
1380
-
1381
- var Event = {
1382
- HIDE: 'hide' + EVENT_KEY,
1383
- HIDDEN: 'hidden' + EVENT_KEY,
1384
- SHOW: 'show' + EVENT_KEY,
1385
- SHOWN: 'shown' + EVENT_KEY,
1386
- CLICK: 'click' + EVENT_KEY,
1387
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
1388
- FOCUSIN_DATA_API: 'focusin' + EVENT_KEY + DATA_API_KEY,
1389
- KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY
1390
- };
1391
-
1392
- var ClassName = {
1393
- BACKDROP: 'dropdown-backdrop',
1394
- DISABLED: 'disabled',
1395
- SHOW: 'show'
1396
- };
1397
-
1398
- var Selector = {
1399
- BACKDROP: '.dropdown-backdrop',
1400
- DATA_TOGGLE: '[data-toggle="dropdown"]',
1401
- FORM_CHILD: '.dropdown form',
1402
- ROLE_MENU: '[role="menu"]',
1403
- ROLE_LISTBOX: '[role="listbox"]',
1404
- NAVBAR_NAV: '.navbar-nav',
1405
- VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a'
1406
- };
1407
-
1408
- /**
1409
- * ------------------------------------------------------------------------
1410
- * Class Definition
1411
- * ------------------------------------------------------------------------
1412
- */
1413
-
1414
- var Dropdown = function () {
1415
- function Dropdown(element) {
1416
- _classCallCheck(this, Dropdown);
1417
-
1418
- this._element = element;
1419
-
1420
- this._addEventListeners();
1421
- }
1422
-
1423
- // getters
1424
-
1425
- // public
1426
-
1427
- Dropdown.prototype.toggle = function toggle() {
1428
- if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
1429
- return false;
1430
- }
1431
-
1432
- var parent = Dropdown._getParentFromElement(this);
1433
- var isActive = $(parent).hasClass(ClassName.SHOW);
1434
-
1435
- Dropdown._clearMenus();
1436
-
1437
- if (isActive) {
1438
- return false;
1439
- }
1440
-
1441
- if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
1442
-
1443
- // if mobile we use a backdrop because click events don't delegate
1444
- var dropdown = document.createElement('div');
1445
- dropdown.className = ClassName.BACKDROP;
1446
- $(dropdown).insertBefore(this);
1447
- $(dropdown).on('click', Dropdown._clearMenus);
1448
- }
1449
-
1450
- var relatedTarget = {
1451
- relatedTarget: this
1452
- };
1453
- var showEvent = $.Event(Event.SHOW, relatedTarget);
1454
-
1455
- $(parent).trigger(showEvent);
1456
-
1457
- if (showEvent.isDefaultPrevented()) {
1458
- return false;
1459
- }
1460
-
1461
- this.focus();
1462
- this.setAttribute('aria-expanded', true);
1463
-
1464
- $(parent).toggleClass(ClassName.SHOW);
1465
- $(parent).trigger($.Event(Event.SHOWN, relatedTarget));
1466
-
1467
- return false;
1468
- };
1469
-
1470
- Dropdown.prototype.dispose = function dispose() {
1471
- $.removeData(this._element, DATA_KEY);
1472
- $(this._element).off(EVENT_KEY);
1473
- this._element = null;
1474
- };
1475
-
1476
- // private
1477
-
1478
- Dropdown.prototype._addEventListeners = function _addEventListeners() {
1479
- $(this._element).on(Event.CLICK, this.toggle);
1480
- };
1481
-
1482
- // static
1483
-
1484
- Dropdown._jQueryInterface = function _jQueryInterface(config) {
1485
- return this.each(function () {
1486
- var data = $(this).data(DATA_KEY);
1487
-
1488
- if (!data) {
1489
- data = new Dropdown(this);
1490
- $(this).data(DATA_KEY, data);
1491
- }
1492
-
1493
- if (typeof config === 'string') {
1494
- if (data[config] === undefined) {
1495
- throw new Error('No method named "' + config + '"');
1496
- }
1497
- data[config].call(this);
1498
- }
1499
- });
1500
- };
1501
-
1502
- Dropdown._clearMenus = function _clearMenus(event) {
1503
- if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
1504
- return;
1505
- }
1506
-
1507
- var backdrop = $(Selector.BACKDROP)[0];
1508
- if (backdrop) {
1509
- backdrop.parentNode.removeChild(backdrop);
1510
- }
1511
-
1512
- var toggles = $.makeArray($(Selector.DATA_TOGGLE));
1513
-
1514
- for (var i = 0; i < toggles.length; i++) {
1515
- var parent = Dropdown._getParentFromElement(toggles[i]);
1516
- var relatedTarget = {
1517
- relatedTarget: toggles[i]
1518
- };
1519
-
1520
- if (!$(parent).hasClass(ClassName.SHOW)) {
1521
- continue;
1522
- }
1523
-
1524
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'focusin') && $.contains(parent, event.target)) {
1525
- continue;
1526
- }
1527
-
1528
- var hideEvent = $.Event(Event.HIDE, relatedTarget);
1529
- $(parent).trigger(hideEvent);
1530
- if (hideEvent.isDefaultPrevented()) {
1531
- continue;
1532
- }
1533
-
1534
- toggles[i].setAttribute('aria-expanded', 'false');
1535
-
1536
- $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
1537
- }
1538
- };
1539
-
1540
- Dropdown._getParentFromElement = function _getParentFromElement(element) {
1541
- var parent = void 0;
1542
- var selector = Util.getSelectorFromElement(element);
1543
-
1544
- if (selector) {
1545
- parent = $(selector)[0];
1546
- }
1547
-
1548
- return parent || element.parentNode;
1549
- };
1550
-
1551
- Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
1552
- if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) {
1553
- return;
1554
- }
1555
-
1556
- event.preventDefault();
1557
- event.stopPropagation();
1558
-
1559
- if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
1560
- return;
1561
- }
1562
-
1563
- var parent = Dropdown._getParentFromElement(this);
1564
- var isActive = $(parent).hasClass(ClassName.SHOW);
1565
-
1566
- if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
1567
-
1568
- if (event.which === ESCAPE_KEYCODE) {
1569
- var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
1570
- $(toggle).trigger('focus');
1571
- }
1572
-
1573
- $(this).trigger('click');
1574
- return;
1575
- }
1576
-
1577
- var items = $(parent).find(Selector.VISIBLE_ITEMS).get();
1578
-
1579
- if (!items.length) {
1580
- return;
1581
- }
1582
-
1583
- var index = items.indexOf(event.target);
1584
-
1585
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
1586
- // up
1587
- index--;
1588
- }
1589
-
1590
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
1591
- // down
1592
- index++;
1593
- }
1594
-
1595
- if (index < 0) {
1596
- index = 0;
1597
- }
1598
-
1599
- items[index].focus();
1600
- };
1601
-
1602
- _createClass(Dropdown, null, [{
1603
- key: 'VERSION',
1604
- get: function get() {
1605
- return VERSION;
1606
- }
1607
- }]);
1608
-
1609
- return Dropdown;
1610
- }();
1611
-
1612
- /**
1613
- * ------------------------------------------------------------------------
1614
- * Data Api implementation
1615
- * ------------------------------------------------------------------------
1616
- */
1617
-
1618
- $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.FOCUSIN_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
1619
- e.stopPropagation();
1620
- });
1621
-
1622
- /**
1623
- * ------------------------------------------------------------------------
1624
- * jQuery
1625
- * ------------------------------------------------------------------------
1626
- */
1627
-
1628
- $.fn[NAME] = Dropdown._jQueryInterface;
1629
- $.fn[NAME].Constructor = Dropdown;
1630
- $.fn[NAME].noConflict = function () {
1631
- $.fn[NAME] = JQUERY_NO_CONFLICT;
1632
- return Dropdown._jQueryInterface;
1633
- };
1634
-
1635
- return Dropdown;
1636
- }(jQuery);
1637
-
1638
- /**
1639
- * --------------------------------------------------------------------------
1640
- * Bootstrap (v4.0.0-alpha.6): modal.js
1641
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1642
- * --------------------------------------------------------------------------
1643
- */
1644
-
1645
- var Modal = function ($) {
1646
-
1647
- /**
1648
- * ------------------------------------------------------------------------
1649
- * Constants
1650
- * ------------------------------------------------------------------------
1651
- */
1652
-
1653
- var NAME = 'modal';
1654
- var VERSION = '4.0.0-alpha.6';
1655
- var DATA_KEY = 'bs.modal';
1656
- var EVENT_KEY = '.' + DATA_KEY;
1657
- var DATA_API_KEY = '.data-api';
1658
- var JQUERY_NO_CONFLICT = $.fn[NAME];
1659
- var TRANSITION_DURATION = 300;
1660
- var BACKDROP_TRANSITION_DURATION = 150;
1661
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
1662
-
1663
- var Default = {
1664
- backdrop: true,
1665
- keyboard: true,
1666
- focus: true,
1667
- show: true
1668
- };
1669
-
1670
- var DefaultType = {
1671
- backdrop: '(boolean|string)',
1672
- keyboard: 'boolean',
1673
- focus: 'boolean',
1674
- show: 'boolean'
1675
- };
1676
-
1677
- var Event = {
1678
- HIDE: 'hide' + EVENT_KEY,
1679
- HIDDEN: 'hidden' + EVENT_KEY,
1680
- SHOW: 'show' + EVENT_KEY,
1681
- SHOWN: 'shown' + EVENT_KEY,
1682
- FOCUSIN: 'focusin' + EVENT_KEY,
1683
- RESIZE: 'resize' + EVENT_KEY,
1684
- CLICK_DISMISS: 'click.dismiss' + EVENT_KEY,
1685
- KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY,
1686
- MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY,
1687
- MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY,
1688
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
1689
- };
1690
-
1691
- var ClassName = {
1692
- SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
1693
- BACKDROP: 'modal-backdrop',
1694
- OPEN: 'modal-open',
1695
- FADE: 'fade',
1696
- SHOW: 'show'
1697
- };
1698
-
1699
- var Selector = {
1700
- DIALOG: '.modal-dialog',
1701
- DATA_TOGGLE: '[data-toggle="modal"]',
1702
- DATA_DISMISS: '[data-dismiss="modal"]',
1703
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'
1704
- };
1705
-
1706
- /**
1707
- * ------------------------------------------------------------------------
1708
- * Class Definition
1709
- * ------------------------------------------------------------------------
1710
- */
1711
-
1712
- var Modal = function () {
1713
- function Modal(element, config) {
1714
- _classCallCheck(this, Modal);
1715
-
1716
- this._config = this._getConfig(config);
1717
- this._element = element;
1718
- this._dialog = $(element).find(Selector.DIALOG)[0];
1719
- this._backdrop = null;
1720
- this._isShown = false;
1721
- this._isBodyOverflowing = false;
1722
- this._ignoreBackdropClick = false;
1723
- this._isTransitioning = false;
1724
- this._originalBodyPadding = 0;
1725
- this._scrollbarWidth = 0;
1726
- }
1727
-
1728
- // getters
1729
-
1730
- // public
1731
-
1732
- Modal.prototype.toggle = function toggle(relatedTarget) {
1733
- return this._isShown ? this.hide() : this.show(relatedTarget);
1734
- };
1735
-
1736
- Modal.prototype.show = function show(relatedTarget) {
1737
- var _this9 = this;
1738
-
1739
- if (this._isTransitioning) {
1740
- throw new Error('Modal is transitioning');
1741
- }
1742
-
1743
- if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
1744
- this._isTransitioning = true;
1745
- }
1746
- var showEvent = $.Event(Event.SHOW, {
1747
- relatedTarget: relatedTarget
1748
- });
1749
-
1750
- $(this._element).trigger(showEvent);
1751
-
1752
- if (this._isShown || showEvent.isDefaultPrevented()) {
1753
- return;
1754
- }
1755
-
1756
- this._isShown = true;
1757
-
1758
- this._checkScrollbar();
1759
- this._setScrollbar();
1760
-
1761
- $(document.body).addClass(ClassName.OPEN);
1762
-
1763
- this._setEscapeEvent();
1764
- this._setResizeEvent();
1765
-
1766
- $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
1767
- return _this9.hide(event);
1768
- });
1769
-
1770
- $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
1771
- $(_this9._element).one(Event.MOUSEUP_DISMISS, function (event) {
1772
- if ($(event.target).is(_this9._element)) {
1773
- _this9._ignoreBackdropClick = true;
1774
- }
1775
- });
1776
- });
1777
-
1778
- this._showBackdrop(function () {
1779
- return _this9._showElement(relatedTarget);
1780
- });
1781
- };
1782
-
1783
- Modal.prototype.hide = function hide(event) {
1784
- var _this10 = this;
1785
-
1786
- if (event) {
1787
- event.preventDefault();
1788
- }
1789
-
1790
- if (this._isTransitioning) {
1791
- throw new Error('Modal is transitioning');
1792
- }
1793
-
1794
- var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
1795
- if (transition) {
1796
- this._isTransitioning = true;
1797
- }
1798
-
1799
- var hideEvent = $.Event(Event.HIDE);
1800
- $(this._element).trigger(hideEvent);
1801
-
1802
- if (!this._isShown || hideEvent.isDefaultPrevented()) {
1803
- return;
1804
- }
1805
-
1806
- this._isShown = false;
1807
-
1808
- this._setEscapeEvent();
1809
- this._setResizeEvent();
1810
-
1811
- $(document).off(Event.FOCUSIN);
1812
-
1813
- $(this._element).removeClass(ClassName.SHOW);
1814
-
1815
- $(this._element).off(Event.CLICK_DISMISS);
1816
- $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
1817
-
1818
- if (transition) {
1819
- $(this._element).one(Util.TRANSITION_END, function (event) {
1820
- return _this10._hideModal(event);
1821
- }).emulateTransitionEnd(TRANSITION_DURATION);
1822
- } else {
1823
- this._hideModal();
1824
- }
1825
- };
1826
-
1827
- Modal.prototype.dispose = function dispose() {
1828
- $.removeData(this._element, DATA_KEY);
1829
-
1830
- $(window, document, this._element, this._backdrop).off(EVENT_KEY);
1831
-
1832
- this._config = null;
1833
- this._element = null;
1834
- this._dialog = null;
1835
- this._backdrop = null;
1836
- this._isShown = null;
1837
- this._isBodyOverflowing = null;
1838
- this._ignoreBackdropClick = null;
1839
- this._originalBodyPadding = null;
1840
- this._scrollbarWidth = null;
1841
- };
1842
-
1843
- // private
1844
-
1845
- Modal.prototype._getConfig = function _getConfig(config) {
1846
- config = $.extend({}, Default, config);
1847
- Util.typeCheckConfig(NAME, config, DefaultType);
1848
- return config;
1849
- };
1850
-
1851
- Modal.prototype._showElement = function _showElement(relatedTarget) {
1852
- var _this11 = this;
1853
-
1854
- var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
1855
-
1856
- if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
1857
- // don't move modals dom position
1858
- document.body.appendChild(this._element);
1859
- }
1860
-
1861
- this._element.style.display = 'block';
1862
- this._element.removeAttribute('aria-hidden');
1863
- this._element.scrollTop = 0;
1864
-
1865
- if (transition) {
1866
- Util.reflow(this._element);
1867
- }
1868
-
1869
- $(this._element).addClass(ClassName.SHOW);
1870
-
1871
- if (this._config.focus) {
1872
- this._enforceFocus();
1873
- }
1874
-
1875
- var shownEvent = $.Event(Event.SHOWN, {
1876
- relatedTarget: relatedTarget
1877
- });
1878
-
1879
- var transitionComplete = function transitionComplete() {
1880
- if (_this11._config.focus) {
1881
- _this11._element.focus();
1882
- }
1883
- _this11._isTransitioning = false;
1884
- $(_this11._element).trigger(shownEvent);
1885
- };
1886
-
1887
- if (transition) {
1888
- $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
1889
- } else {
1890
- transitionComplete();
1891
- }
1892
- };
1893
-
1894
- Modal.prototype._enforceFocus = function _enforceFocus() {
1895
- var _this12 = this;
1896
-
1897
- $(document).off(Event.FOCUSIN) // guard against infinite focus loop
1898
- .on(Event.FOCUSIN, function (event) {
1899
- if (document !== event.target && _this12._element !== event.target && !$(_this12._element).has(event.target).length) {
1900
- _this12._element.focus();
1901
- }
1902
- });
1903
- };
1904
-
1905
- Modal.prototype._setEscapeEvent = function _setEscapeEvent() {
1906
- var _this13 = this;
1907
-
1908
- if (this._isShown && this._config.keyboard) {
1909
- $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
1910
- if (event.which === ESCAPE_KEYCODE) {
1911
- _this13.hide();
1912
- }
1913
- });
1914
- } else if (!this._isShown) {
1915
- $(this._element).off(Event.KEYDOWN_DISMISS);
1916
- }
1917
- };
1918
-
1919
- Modal.prototype._setResizeEvent = function _setResizeEvent() {
1920
- var _this14 = this;
1921
-
1922
- if (this._isShown) {
1923
- $(window).on(Event.RESIZE, function (event) {
1924
- return _this14._handleUpdate(event);
1925
- });
1926
- } else {
1927
- $(window).off(Event.RESIZE);
1928
- }
1929
- };
1930
-
1931
- Modal.prototype._hideModal = function _hideModal() {
1932
- var _this15 = this;
1933
-
1934
- this._element.style.display = 'none';
1935
- this._element.setAttribute('aria-hidden', 'true');
1936
- this._isTransitioning = false;
1937
- this._showBackdrop(function () {
1938
- $(document.body).removeClass(ClassName.OPEN);
1939
- _this15._resetAdjustments();
1940
- _this15._resetScrollbar();
1941
- $(_this15._element).trigger(Event.HIDDEN);
1942
- });
1943
- };
1944
-
1945
- Modal.prototype._removeBackdrop = function _removeBackdrop() {
1946
- if (this._backdrop) {
1947
- $(this._backdrop).remove();
1948
- this._backdrop = null;
1949
- }
1950
- };
1951
-
1952
- Modal.prototype._showBackdrop = function _showBackdrop(callback) {
1953
- var _this16 = this;
1954
-
1955
- var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
1956
-
1957
- if (this._isShown && this._config.backdrop) {
1958
- var doAnimate = Util.supportsTransitionEnd() && animate;
1959
-
1960
- this._backdrop = document.createElement('div');
1961
- this._backdrop.className = ClassName.BACKDROP;
1962
-
1963
- if (animate) {
1964
- $(this._backdrop).addClass(animate);
1965
- }
1966
-
1967
- $(this._backdrop).appendTo(document.body);
1968
-
1969
- $(this._element).on(Event.CLICK_DISMISS, function (event) {
1970
- if (_this16._ignoreBackdropClick) {
1971
- _this16._ignoreBackdropClick = false;
1972
- return;
1973
- }
1974
- if (event.target !== event.currentTarget) {
1975
- return;
1976
- }
1977
- if (_this16._config.backdrop === 'static') {
1978
- _this16._element.focus();
1979
- } else {
1980
- _this16.hide();
1981
- }
1982
- });
1983
-
1984
- if (doAnimate) {
1985
- Util.reflow(this._backdrop);
1986
- }
1987
-
1988
- $(this._backdrop).addClass(ClassName.SHOW);
1989
-
1990
- if (!callback) {
1991
- return;
1992
- }
1993
-
1994
- if (!doAnimate) {
1995
- callback();
1996
- return;
1997
- }
1998
-
1999
- $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
2000
- } else if (!this._isShown && this._backdrop) {
2001
- $(this._backdrop).removeClass(ClassName.SHOW);
2002
-
2003
- var callbackRemove = function callbackRemove() {
2004
- _this16._removeBackdrop();
2005
- if (callback) {
2006
- callback();
2007
- }
2008
- };
2009
-
2010
- if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
2011
- $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
2012
- } else {
2013
- callbackRemove();
2014
- }
2015
- } else if (callback) {
2016
- callback();
2017
- }
2018
- };
2019
-
2020
- // ----------------------------------------------------------------------
2021
- // the following methods are used to handle overflowing modals
2022
- // todo (fat): these should probably be refactored out of modal.js
2023
- // ----------------------------------------------------------------------
2024
-
2025
- Modal.prototype._handleUpdate = function _handleUpdate() {
2026
- this._adjustDialog();
2027
- };
2028
-
2029
- Modal.prototype._adjustDialog = function _adjustDialog() {
2030
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
2031
-
2032
- if (!this._isBodyOverflowing && isModalOverflowing) {
2033
- this._element.style.paddingLeft = this._scrollbarWidth + 'px';
2034
- }
2035
-
2036
- if (this._isBodyOverflowing && !isModalOverflowing) {
2037
- this._element.style.paddingRight = this._scrollbarWidth + 'px';
2038
- }
2039
- };
2040
-
2041
- Modal.prototype._resetAdjustments = function _resetAdjustments() {
2042
- this._element.style.paddingLeft = '';
2043
- this._element.style.paddingRight = '';
2044
- };
2045
-
2046
- Modal.prototype._checkScrollbar = function _checkScrollbar() {
2047
- this._isBodyOverflowing = document.body.clientWidth < window.innerWidth;
2048
- this._scrollbarWidth = this._getScrollbarWidth();
2049
- };
2050
-
2051
- Modal.prototype._setScrollbar = function _setScrollbar() {
2052
- var bodyPadding = parseInt($(Selector.FIXED_CONTENT).css('padding-right') || 0, 10);
2053
-
2054
- this._originalBodyPadding = document.body.style.paddingRight || '';
2055
-
2056
- if (this._isBodyOverflowing) {
2057
- document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px';
2058
- }
2059
- };
2060
-
2061
- Modal.prototype._resetScrollbar = function _resetScrollbar() {
2062
- document.body.style.paddingRight = this._originalBodyPadding;
2063
- };
2064
-
2065
- Modal.prototype._getScrollbarWidth = function _getScrollbarWidth() {
2066
- // thx d.walsh
2067
- var scrollDiv = document.createElement('div');
2068
- scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
2069
- document.body.appendChild(scrollDiv);
2070
- var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
2071
- document.body.removeChild(scrollDiv);
2072
- return scrollbarWidth;
2073
- };
2074
-
2075
- // static
2076
-
2077
- Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
2078
- return this.each(function () {
2079
- var data = $(this).data(DATA_KEY);
2080
- var _config = $.extend({}, Modal.Default, $(this).data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);
2081
-
2082
- if (!data) {
2083
- data = new Modal(this, _config);
2084
- $(this).data(DATA_KEY, data);
2085
- }
2086
-
2087
- if (typeof config === 'string') {
2088
- if (data[config] === undefined) {
2089
- throw new Error('No method named "' + config + '"');
2090
- }
2091
- data[config](relatedTarget);
2092
- } else if (_config.show) {
2093
- data.show(relatedTarget);
2094
- }
2095
- });
2096
- };
2097
-
2098
- _createClass(Modal, null, [{
2099
- key: 'VERSION',
2100
- get: function get() {
2101
- return VERSION;
2102
- }
2103
- }, {
2104
- key: 'Default',
2105
- get: function get() {
2106
- return Default;
2107
- }
2108
- }]);
2109
-
2110
- return Modal;
2111
- }();
2112
-
2113
- /**
2114
- * ------------------------------------------------------------------------
2115
- * Data Api implementation
2116
- * ------------------------------------------------------------------------
2117
- */
2118
-
2119
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
2120
- var _this17 = this;
2121
-
2122
- var target = void 0;
2123
- var selector = Util.getSelectorFromElement(this);
2124
-
2125
- if (selector) {
2126
- target = $(selector)[0];
2127
- }
2128
-
2129
- var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
2130
-
2131
- if (this.tagName === 'A' || this.tagName === 'AREA') {
2132
- event.preventDefault();
2133
- }
2134
-
2135
- var $target = $(target).one(Event.SHOW, function (showEvent) {
2136
- if (showEvent.isDefaultPrevented()) {
2137
- // only register focus restorer if modal will actually get shown
2138
- return;
2139
- }
2140
-
2141
- $target.one(Event.HIDDEN, function () {
2142
- if ($(_this17).is(':visible')) {
2143
- _this17.focus();
2144
- }
2145
- });
2146
- });
2147
-
2148
- Modal._jQueryInterface.call($(target), config, this);
2149
- });
2150
-
2151
- /**
2152
- * ------------------------------------------------------------------------
2153
- * jQuery
2154
- * ------------------------------------------------------------------------
2155
- */
2156
-
2157
- $.fn[NAME] = Modal._jQueryInterface;
2158
- $.fn[NAME].Constructor = Modal;
2159
- $.fn[NAME].noConflict = function () {
2160
- $.fn[NAME] = JQUERY_NO_CONFLICT;
2161
- return Modal._jQueryInterface;
2162
- };
2163
-
2164
- return Modal;
2165
- }(jQuery);
2166
-
2167
- /**
2168
- * --------------------------------------------------------------------------
2169
- * Bootstrap (v4.0.0-alpha.6): scrollspy.js
2170
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2171
- * --------------------------------------------------------------------------
2172
- */
2173
-
2174
- var ScrollSpy = function ($) {
2175
-
2176
- /**
2177
- * ------------------------------------------------------------------------
2178
- * Constants
2179
- * ------------------------------------------------------------------------
2180
- */
2181
-
2182
- var NAME = 'scrollspy';
2183
- var VERSION = '4.0.0-alpha.6';
2184
- var DATA_KEY = 'bs.scrollspy';
2185
- var EVENT_KEY = '.' + DATA_KEY;
2186
- var DATA_API_KEY = '.data-api';
2187
- var JQUERY_NO_CONFLICT = $.fn[NAME];
2188
-
2189
- var Default = {
2190
- offset: 10,
2191
- method: 'auto',
2192
- target: ''
2193
- };
2194
-
2195
- var DefaultType = {
2196
- offset: 'number',
2197
- method: 'string',
2198
- target: '(string|element)'
2199
- };
2200
-
2201
- var Event = {
2202
- ACTIVATE: 'activate' + EVENT_KEY,
2203
- SCROLL: 'scroll' + EVENT_KEY,
2204
- LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY
2205
- };
2206
-
2207
- var ClassName = {
2208
- DROPDOWN_ITEM: 'dropdown-item',
2209
- DROPDOWN_MENU: 'dropdown-menu',
2210
- NAV_LINK: 'nav-link',
2211
- NAV: 'nav',
2212
- ACTIVE: 'active'
2213
- };
2214
-
2215
- var Selector = {
2216
- DATA_SPY: '[data-spy="scroll"]',
2217
- ACTIVE: '.active',
2218
- LIST_ITEM: '.list-item',
2219
- LI: 'li',
2220
- LI_DROPDOWN: 'li.dropdown',
2221
- NAV_LINKS: '.nav-link',
2222
- DROPDOWN: '.dropdown',
2223
- DROPDOWN_ITEMS: '.dropdown-item',
2224
- DROPDOWN_TOGGLE: '.dropdown-toggle'
2225
- };
2226
-
2227
- var OffsetMethod = {
2228
- OFFSET: 'offset',
2229
- POSITION: 'position'
2230
- };
2231
-
2232
- /**
2233
- * ------------------------------------------------------------------------
2234
- * Class Definition
2235
- * ------------------------------------------------------------------------
2236
- */
2237
-
2238
- var ScrollSpy = function () {
2239
- function ScrollSpy(element, config) {
2240
- var _this18 = this;
2241
-
2242
- _classCallCheck(this, ScrollSpy);
2243
-
2244
- this._element = element;
2245
- this._scrollElement = element.tagName === 'BODY' ? window : element;
2246
- this._config = this._getConfig(config);
2247
- this._selector = this._config.target + ' ' + Selector.NAV_LINKS + ',' + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS);
2248
- this._offsets = [];
2249
- this._targets = [];
2250
- this._activeTarget = null;
2251
- this._scrollHeight = 0;
2252
-
2253
- $(this._scrollElement).on(Event.SCROLL, function (event) {
2254
- return _this18._process(event);
2255
- });
2256
-
2257
- this.refresh();
2258
- this._process();
2259
- }
2260
-
2261
- // getters
2262
-
2263
- // public
2264
-
2265
- ScrollSpy.prototype.refresh = function refresh() {
2266
- var _this19 = this;
2267
-
2268
- var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
2269
-
2270
- var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
2271
-
2272
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
2273
-
2274
- this._offsets = [];
2275
- this._targets = [];
2276
-
2277
- this._scrollHeight = this._getScrollHeight();
2278
-
2279
- var targets = $.makeArray($(this._selector));
2280
-
2281
- targets.map(function (element) {
2282
- var target = void 0;
2283
- var targetSelector = Util.getSelectorFromElement(element);
2284
-
2285
- if (targetSelector) {
2286
- target = $(targetSelector)[0];
2287
- }
2288
-
2289
- if (target && (target.offsetWidth || target.offsetHeight)) {
2290
- // todo (fat): remove sketch reliance on jQuery position/offset
2291
- return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
2292
- }
2293
- return null;
2294
- }).filter(function (item) {
2295
- return item;
2296
- }).sort(function (a, b) {
2297
- return a[0] - b[0];
2298
- }).forEach(function (item) {
2299
- _this19._offsets.push(item[0]);
2300
- _this19._targets.push(item[1]);
2301
- });
2302
- };
2303
-
2304
- ScrollSpy.prototype.dispose = function dispose() {
2305
- $.removeData(this._element, DATA_KEY);
2306
- $(this._scrollElement).off(EVENT_KEY);
2307
-
2308
- this._element = null;
2309
- this._scrollElement = null;
2310
- this._config = null;
2311
- this._selector = null;
2312
- this._offsets = null;
2313
- this._targets = null;
2314
- this._activeTarget = null;
2315
- this._scrollHeight = null;
2316
- };
2317
-
2318
- // private
2319
-
2320
- ScrollSpy.prototype._getConfig = function _getConfig(config) {
2321
- config = $.extend({}, Default, config);
2322
-
2323
- if (typeof config.target !== 'string') {
2324
- var id = $(config.target).attr('id');
2325
- if (!id) {
2326
- id = Util.getUID(NAME);
2327
- $(config.target).attr('id', id);
2328
- }
2329
- config.target = '#' + id;
2330
- }
2331
-
2332
- Util.typeCheckConfig(NAME, config, DefaultType);
2333
-
2334
- return config;
2335
- };
2336
-
2337
- ScrollSpy.prototype._getScrollTop = function _getScrollTop() {
2338
- return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
2339
- };
2340
-
2341
- ScrollSpy.prototype._getScrollHeight = function _getScrollHeight() {
2342
- return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
2343
- };
2344
-
2345
- ScrollSpy.prototype._getOffsetHeight = function _getOffsetHeight() {
2346
- return this._scrollElement === window ? window.innerHeight : this._scrollElement.offsetHeight;
2347
- };
2348
-
2349
- ScrollSpy.prototype._process = function _process() {
2350
- var scrollTop = this._getScrollTop() + this._config.offset;
2351
- var scrollHeight = this._getScrollHeight();
2352
- var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
2353
-
2354
- if (this._scrollHeight !== scrollHeight) {
2355
- this.refresh();
2356
- }
2357
-
2358
- if (scrollTop >= maxScroll) {
2359
- var target = this._targets[this._targets.length - 1];
2360
-
2361
- if (this._activeTarget !== target) {
2362
- this._activate(target);
2363
- }
2364
- return;
2365
- }
2366
-
2367
- if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
2368
- this._activeTarget = null;
2369
- this._clear();
2370
- return;
2371
- }
2372
-
2373
- for (var i = this._offsets.length; i--;) {
2374
- var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (this._offsets[i + 1] === undefined || scrollTop < this._offsets[i + 1]);
2375
-
2376
- if (isActiveTarget) {
2377
- this._activate(this._targets[i]);
2378
- }
2379
- }
2380
- };
2381
-
2382
- ScrollSpy.prototype._activate = function _activate(target) {
2383
- this._activeTarget = target;
2384
-
2385
- this._clear();
2386
-
2387
- var queries = this._selector.split(',');
2388
- queries = queries.map(function (selector) {
2389
- return selector + '[data-target="' + target + '"],' + (selector + '[href="' + target + '"]');
2390
- });
2391
-
2392
- var $link = $(queries.join(','));
2393
-
2394
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
2395
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
2396
- $link.addClass(ClassName.ACTIVE);
2397
- } else {
2398
- // todo (fat) this is kinda sus...
2399
- // recursively add actives to tested nav-links
2400
- $link.parents(Selector.LI).find('> ' + Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
2401
- }
2402
-
2403
- $(this._scrollElement).trigger(Event.ACTIVATE, {
2404
- relatedTarget: target
2405
- });
2406
- };
2407
-
2408
- ScrollSpy.prototype._clear = function _clear() {
2409
- $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
2410
- };
2411
-
2412
- // static
2413
-
2414
- ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
2415
- return this.each(function () {
2416
- var data = $(this).data(DATA_KEY);
2417
- var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config;
2418
-
2419
- if (!data) {
2420
- data = new ScrollSpy(this, _config);
2421
- $(this).data(DATA_KEY, data);
2422
- }
2423
-
2424
- if (typeof config === 'string') {
2425
- if (data[config] === undefined) {
2426
- throw new Error('No method named "' + config + '"');
2427
- }
2428
- data[config]();
2429
- }
2430
- });
2431
- };
2432
-
2433
- _createClass(ScrollSpy, null, [{
2434
- key: 'VERSION',
2435
- get: function get() {
2436
- return VERSION;
2437
- }
2438
- }, {
2439
- key: 'Default',
2440
- get: function get() {
2441
- return Default;
2442
- }
2443
- }]);
2444
-
2445
- return ScrollSpy;
2446
- }();
2447
-
2448
- /**
2449
- * ------------------------------------------------------------------------
2450
- * Data Api implementation
2451
- * ------------------------------------------------------------------------
2452
- */
2453
-
2454
- $(window).on(Event.LOAD_DATA_API, function () {
2455
- var scrollSpys = $.makeArray($(Selector.DATA_SPY));
2456
-
2457
- for (var i = scrollSpys.length; i--;) {
2458
- var $spy = $(scrollSpys[i]);
2459
- ScrollSpy._jQueryInterface.call($spy, $spy.data());
2460
- }
2461
- });
2462
-
2463
- /**
2464
- * ------------------------------------------------------------------------
2465
- * jQuery
2466
- * ------------------------------------------------------------------------
2467
- */
2468
-
2469
- $.fn[NAME] = ScrollSpy._jQueryInterface;
2470
- $.fn[NAME].Constructor = ScrollSpy;
2471
- $.fn[NAME].noConflict = function () {
2472
- $.fn[NAME] = JQUERY_NO_CONFLICT;
2473
- return ScrollSpy._jQueryInterface;
2474
- };
2475
-
2476
- return ScrollSpy;
2477
- }(jQuery);
2478
-
2479
- /**
2480
- * --------------------------------------------------------------------------
2481
- * Bootstrap (v4.0.0-alpha.6): tab.js
2482
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2483
- * --------------------------------------------------------------------------
2484
- */
2485
-
2486
- var Tab = function ($) {
2487
-
2488
- /**
2489
- * ------------------------------------------------------------------------
2490
- * Constants
2491
- * ------------------------------------------------------------------------
2492
- */
2493
-
2494
- var NAME = 'tab';
2495
- var VERSION = '4.0.0-alpha.6';
2496
- var DATA_KEY = 'bs.tab';
2497
- var EVENT_KEY = '.' + DATA_KEY;
2498
- var DATA_API_KEY = '.data-api';
2499
- var JQUERY_NO_CONFLICT = $.fn[NAME];
2500
- var TRANSITION_DURATION = 150;
2501
-
2502
- var Event = {
2503
- HIDE: 'hide' + EVENT_KEY,
2504
- HIDDEN: 'hidden' + EVENT_KEY,
2505
- SHOW: 'show' + EVENT_KEY,
2506
- SHOWN: 'shown' + EVENT_KEY,
2507
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
2508
- };
2509
-
2510
- var ClassName = {
2511
- DROPDOWN_MENU: 'dropdown-menu',
2512
- ACTIVE: 'active',
2513
- DISABLED: 'disabled',
2514
- FADE: 'fade',
2515
- SHOW: 'show'
2516
- };
2517
-
2518
- var Selector = {
2519
- A: 'a',
2520
- LI: 'li',
2521
- DROPDOWN: '.dropdown',
2522
- LIST: 'ul:not(.dropdown-menu), ol:not(.dropdown-menu), nav:not(.dropdown-menu)',
2523
- FADE_CHILD: '> .nav-item .fade, > .fade',
2524
- ACTIVE: '.active',
2525
- ACTIVE_CHILD: '> .nav-item > .active, > .active',
2526
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]',
2527
- DROPDOWN_TOGGLE: '.dropdown-toggle',
2528
- DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
2529
- };
2530
-
2531
- /**
2532
- * ------------------------------------------------------------------------
2533
- * Class Definition
2534
- * ------------------------------------------------------------------------
2535
- */
2536
-
2537
- var Tab = function () {
2538
- function Tab(element) {
2539
- _classCallCheck(this, Tab);
2540
-
2541
- this._element = element;
2542
- }
2543
-
2544
- // getters
2545
-
2546
- // public
2547
-
2548
- Tab.prototype.show = function show() {
2549
- var _this20 = this;
2550
-
2551
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
2552
- return;
2553
- }
2554
-
2555
- var target = void 0;
2556
- var previous = void 0;
2557
- var listElement = $(this._element).closest(Selector.LIST)[0];
2558
- var selector = Util.getSelectorFromElement(this._element);
2559
-
2560
- if (listElement) {
2561
- previous = $.makeArray($(listElement).find(Selector.ACTIVE));
2562
- previous = previous[previous.length - 1];
2563
- }
2564
-
2565
- var hideEvent = $.Event(Event.HIDE, {
2566
- relatedTarget: this._element
2567
- });
2568
-
2569
- var showEvent = $.Event(Event.SHOW, {
2570
- relatedTarget: previous
2571
- });
2572
-
2573
- if (previous) {
2574
- $(previous).trigger(hideEvent);
2575
- }
2576
-
2577
- $(this._element).trigger(showEvent);
2578
-
2579
- if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
2580
- return;
2581
- }
2582
-
2583
- if (selector) {
2584
- target = $(selector)[0];
2585
- }
2586
-
2587
- this._activate(this._element, listElement);
2588
-
2589
- var complete = function complete() {
2590
- var hiddenEvent = $.Event(Event.HIDDEN, {
2591
- relatedTarget: _this20._element
2592
- });
2593
-
2594
- var shownEvent = $.Event(Event.SHOWN, {
2595
- relatedTarget: previous
2596
- });
2597
-
2598
- $(previous).trigger(hiddenEvent);
2599
- $(_this20._element).trigger(shownEvent);
2600
- };
2601
-
2602
- if (target) {
2603
- this._activate(target, target.parentNode, complete);
2604
- } else {
2605
- complete();
2606
- }
2607
- };
2608
-
2609
- Tab.prototype.dispose = function dispose() {
2610
- $.removeClass(this._element, DATA_KEY);
2611
- this._element = null;
2612
- };
2613
-
2614
- // private
2615
-
2616
- Tab.prototype._activate = function _activate(element, container, callback) {
2617
- var _this21 = this;
2618
-
2619
- var active = $(container).find(Selector.ACTIVE_CHILD)[0];
2620
- var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || Boolean($(container).find(Selector.FADE_CHILD)[0]));
2621
-
2622
- var complete = function complete() {
2623
- return _this21._transitionComplete(element, active, isTransitioning, callback);
2624
- };
2625
-
2626
- if (active && isTransitioning) {
2627
- $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
2628
- } else {
2629
- complete();
2630
- }
2631
-
2632
- if (active) {
2633
- $(active).removeClass(ClassName.SHOW);
2634
- }
2635
- };
2636
-
2637
- Tab.prototype._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {
2638
- if (active) {
2639
- $(active).removeClass(ClassName.ACTIVE);
2640
-
2641
- var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
2642
-
2643
- if (dropdownChild) {
2644
- $(dropdownChild).removeClass(ClassName.ACTIVE);
2645
- }
2646
-
2647
- active.setAttribute('aria-expanded', false);
2648
- }
2649
-
2650
- $(element).addClass(ClassName.ACTIVE);
2651
- element.setAttribute('aria-expanded', true);
2652
-
2653
- if (isTransitioning) {
2654
- Util.reflow(element);
2655
- $(element).addClass(ClassName.SHOW);
2656
- } else {
2657
- $(element).removeClass(ClassName.FADE);
2658
- }
2659
-
2660
- if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
2661
-
2662
- var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
2663
- if (dropdownElement) {
2664
- $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
2665
- }
2666
-
2667
- element.setAttribute('aria-expanded', true);
2668
- }
2669
-
2670
- if (callback) {
2671
- callback();
2672
- }
2673
- };
2674
-
2675
- // static
2676
-
2677
- Tab._jQueryInterface = function _jQueryInterface(config) {
2678
- return this.each(function () {
2679
- var $this = $(this);
2680
- var data = $this.data(DATA_KEY);
2681
-
2682
- if (!data) {
2683
- data = new Tab(this);
2684
- $this.data(DATA_KEY, data);
2685
- }
2686
-
2687
- if (typeof config === 'string') {
2688
- if (data[config] === undefined) {
2689
- throw new Error('No method named "' + config + '"');
2690
- }
2691
- data[config]();
2692
- }
2693
- });
2694
- };
2695
-
2696
- _createClass(Tab, null, [{
2697
- key: 'VERSION',
2698
- get: function get() {
2699
- return VERSION;
2700
- }
2701
- }]);
2702
-
2703
- return Tab;
2704
- }();
2705
-
2706
- /**
2707
- * ------------------------------------------------------------------------
2708
- * Data Api implementation
2709
- * ------------------------------------------------------------------------
2710
- */
2711
-
2712
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
2713
- event.preventDefault();
2714
- Tab._jQueryInterface.call($(this), 'show');
2715
- });
2716
-
2717
- /**
2718
- * ------------------------------------------------------------------------
2719
- * jQuery
2720
- * ------------------------------------------------------------------------
2721
- */
2722
-
2723
- $.fn[NAME] = Tab._jQueryInterface;
2724
- $.fn[NAME].Constructor = Tab;
2725
- $.fn[NAME].noConflict = function () {
2726
- $.fn[NAME] = JQUERY_NO_CONFLICT;
2727
- return Tab._jQueryInterface;
2728
- };
2729
-
2730
- return Tab;
2731
- }(jQuery);
2732
-
2733
- /* global Tether */
2734
-
2735
- /**
2736
- * --------------------------------------------------------------------------
2737
- * Bootstrap (v4.0.0-alpha.6): tooltip.js
2738
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2739
- * --------------------------------------------------------------------------
2740
- */
2741
-
2742
- var Tooltip = function ($) {
2743
-
2744
- /**
2745
- * Check for Tether dependency
2746
- * Tether - http://tether.io/
2747
- */
2748
- if (typeof Tether === 'undefined') {
2749
- throw new Error('Bootstrap tooltips require Tether (http://tether.io/)');
2750
- }
2751
-
2752
- /**
2753
- * ------------------------------------------------------------------------
2754
- * Constants
2755
- * ------------------------------------------------------------------------
2756
- */
2757
-
2758
- var NAME = 'tooltip';
2759
- var VERSION = '4.0.0-alpha.6';
2760
- var DATA_KEY = 'bs.tooltip';
2761
- var EVENT_KEY = '.' + DATA_KEY;
2762
- var JQUERY_NO_CONFLICT = $.fn[NAME];
2763
- var TRANSITION_DURATION = 150;
2764
- var CLASS_PREFIX = 'bs-tether';
2765
-
2766
- var Default = {
2767
- animation: true,
2768
- template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-inner"></div></div>',
2769
- trigger: 'hover focus',
2770
- title: '',
2771
- delay: 0,
2772
- html: false,
2773
- selector: false,
2774
- placement: 'top',
2775
- offset: '0 0',
2776
- constraints: [],
2777
- container: false
2778
- };
2779
-
2780
- var DefaultType = {
2781
- animation: 'boolean',
2782
- template: 'string',
2783
- title: '(string|element|function)',
2784
- trigger: 'string',
2785
- delay: '(number|object)',
2786
- html: 'boolean',
2787
- selector: '(string|boolean)',
2788
- placement: '(string|function)',
2789
- offset: 'string',
2790
- constraints: 'array',
2791
- container: '(string|element|boolean)'
2792
- };
2793
-
2794
- var AttachmentMap = {
2795
- TOP: 'bottom center',
2796
- RIGHT: 'middle left',
2797
- BOTTOM: 'top center',
2798
- LEFT: 'middle right'
2799
- };
2800
-
2801
- var HoverState = {
2802
- SHOW: 'show',
2803
- OUT: 'out'
2804
- };
2805
-
2806
- var Event = {
2807
- HIDE: 'hide' + EVENT_KEY,
2808
- HIDDEN: 'hidden' + EVENT_KEY,
2809
- SHOW: 'show' + EVENT_KEY,
2810
- SHOWN: 'shown' + EVENT_KEY,
2811
- INSERTED: 'inserted' + EVENT_KEY,
2812
- CLICK: 'click' + EVENT_KEY,
2813
- FOCUSIN: 'focusin' + EVENT_KEY,
2814
- FOCUSOUT: 'focusout' + EVENT_KEY,
2815
- MOUSEENTER: 'mouseenter' + EVENT_KEY,
2816
- MOUSELEAVE: 'mouseleave' + EVENT_KEY
2817
- };
2818
-
2819
- var ClassName = {
2820
- FADE: 'fade',
2821
- SHOW: 'show'
2822
- };
2823
-
2824
- var Selector = {
2825
- TOOLTIP: '.tooltip',
2826
- TOOLTIP_INNER: '.tooltip-inner'
2827
- };
2828
-
2829
- var TetherClass = {
2830
- element: false,
2831
- enabled: false
2832
- };
2833
-
2834
- var Trigger = {
2835
- HOVER: 'hover',
2836
- FOCUS: 'focus',
2837
- CLICK: 'click',
2838
- MANUAL: 'manual'
2839
- };
2840
-
2841
- /**
2842
- * ------------------------------------------------------------------------
2843
- * Class Definition
2844
- * ------------------------------------------------------------------------
2845
- */
2846
-
2847
- var Tooltip = function () {
2848
- function Tooltip(element, config) {
2849
- _classCallCheck(this, Tooltip);
2850
-
2851
- // private
2852
- this._isEnabled = true;
2853
- this._timeout = 0;
2854
- this._hoverState = '';
2855
- this._activeTrigger = {};
2856
- this._isTransitioning = false;
2857
- this._tether = null;
2858
-
2859
- // protected
2860
- this.element = element;
2861
- this.config = this._getConfig(config);
2862
- this.tip = null;
2863
-
2864
- this._setListeners();
2865
- }
2866
-
2867
- // getters
2868
-
2869
- // public
2870
-
2871
- Tooltip.prototype.enable = function enable() {
2872
- this._isEnabled = true;
2873
- };
2874
-
2875
- Tooltip.prototype.disable = function disable() {
2876
- this._isEnabled = false;
2877
- };
2878
-
2879
- Tooltip.prototype.toggleEnabled = function toggleEnabled() {
2880
- this._isEnabled = !this._isEnabled;
2881
- };
2882
-
2883
- Tooltip.prototype.toggle = function toggle(event) {
2884
- if (event) {
2885
- var dataKey = this.constructor.DATA_KEY;
2886
- var context = $(event.currentTarget).data(dataKey);
2887
-
2888
- if (!context) {
2889
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
2890
- $(event.currentTarget).data(dataKey, context);
2891
- }
2892
-
2893
- context._activeTrigger.click = !context._activeTrigger.click;
2894
-
2895
- if (context._isWithActiveTrigger()) {
2896
- context._enter(null, context);
2897
- } else {
2898
- context._leave(null, context);
2899
- }
2900
- } else {
2901
-
2902
- if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
2903
- this._leave(null, this);
2904
- return;
2905
- }
2906
-
2907
- this._enter(null, this);
2908
- }
2909
- };
2910
-
2911
- Tooltip.prototype.dispose = function dispose() {
2912
- clearTimeout(this._timeout);
2913
-
2914
- this.cleanupTether();
2915
-
2916
- $.removeData(this.element, this.constructor.DATA_KEY);
2917
-
2918
- $(this.element).off(this.constructor.EVENT_KEY);
2919
- $(this.element).closest('.modal').off('hide.bs.modal');
2920
-
2921
- if (this.tip) {
2922
- $(this.tip).remove();
2923
- }
2924
-
2925
- this._isEnabled = null;
2926
- this._timeout = null;
2927
- this._hoverState = null;
2928
- this._activeTrigger = null;
2929
- this._tether = null;
2930
-
2931
- this.element = null;
2932
- this.config = null;
2933
- this.tip = null;
2934
- };
2935
-
2936
- Tooltip.prototype.show = function show() {
2937
- var _this22 = this;
2938
-
2939
- if ($(this.element).css('display') === 'none') {
2940
- throw new Error('Please use show on visible elements');
2941
- }
2942
-
2943
- var showEvent = $.Event(this.constructor.Event.SHOW);
2944
- if (this.isWithContent() && this._isEnabled) {
2945
- if (this._isTransitioning) {
2946
- throw new Error('Tooltip is transitioning');
2947
- }
2948
- $(this.element).trigger(showEvent);
2949
-
2950
- var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
2951
-
2952
- if (showEvent.isDefaultPrevented() || !isInTheDom) {
2953
- return;
2954
- }
2955
-
2956
- var tip = this.getTipElement();
2957
- var tipId = Util.getUID(this.constructor.NAME);
2958
-
2959
- tip.setAttribute('id', tipId);
2960
- this.element.setAttribute('aria-describedby', tipId);
2961
-
2962
- this.setContent();
2963
-
2964
- if (this.config.animation) {
2965
- $(tip).addClass(ClassName.FADE);
2966
- }
2967
-
2968
- var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
2969
-
2970
- var attachment = this._getAttachment(placement);
2971
-
2972
- var container = this.config.container === false ? document.body : $(this.config.container);
2973
-
2974
- $(tip).data(this.constructor.DATA_KEY, this).appendTo(container);
2975
-
2976
- $(this.element).trigger(this.constructor.Event.INSERTED);
2977
-
2978
- this._tether = new Tether({
2979
- attachment: attachment,
2980
- element: tip,
2981
- target: this.element,
2982
- classes: TetherClass,
2983
- classPrefix: CLASS_PREFIX,
2984
- offset: this.config.offset,
2985
- constraints: this.config.constraints,
2986
- addTargetClasses: false
2987
- });
2988
-
2989
- Util.reflow(tip);
2990
- this._tether.position();
2991
-
2992
- $(tip).addClass(ClassName.SHOW);
2993
-
2994
- var complete = function complete() {
2995
- var prevHoverState = _this22._hoverState;
2996
- _this22._hoverState = null;
2997
- _this22._isTransitioning = false;
2998
-
2999
- $(_this22.element).trigger(_this22.constructor.Event.SHOWN);
3000
-
3001
- if (prevHoverState === HoverState.OUT) {
3002
- _this22._leave(null, _this22);
3003
- }
3004
- };
3005
-
3006
- if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
3007
- this._isTransitioning = true;
3008
- $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
3009
- return;
3010
- }
3011
-
3012
- complete();
3013
- }
3014
- };
3015
-
3016
- Tooltip.prototype.hide = function hide(callback) {
3017
- var _this23 = this;
3018
-
3019
- var tip = this.getTipElement();
3020
- var hideEvent = $.Event(this.constructor.Event.HIDE);
3021
- if (this._isTransitioning) {
3022
- throw new Error('Tooltip is transitioning');
3023
- }
3024
- var complete = function complete() {
3025
- if (_this23._hoverState !== HoverState.SHOW && tip.parentNode) {
3026
- tip.parentNode.removeChild(tip);
3027
- }
3028
-
3029
- _this23.element.removeAttribute('aria-describedby');
3030
- $(_this23.element).trigger(_this23.constructor.Event.HIDDEN);
3031
- _this23._isTransitioning = false;
3032
- _this23.cleanupTether();
3033
-
3034
- if (callback) {
3035
- callback();
3036
- }
3037
- };
3038
-
3039
- $(this.element).trigger(hideEvent);
3040
-
3041
- if (hideEvent.isDefaultPrevented()) {
3042
- return;
3043
- }
3044
-
3045
- $(tip).removeClass(ClassName.SHOW);
3046
-
3047
- this._activeTrigger[Trigger.CLICK] = false;
3048
- this._activeTrigger[Trigger.FOCUS] = false;
3049
- this._activeTrigger[Trigger.HOVER] = false;
3050
-
3051
- if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
3052
- this._isTransitioning = true;
3053
- $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
3054
- } else {
3055
- complete();
3056
- }
3057
-
3058
- this._hoverState = '';
3059
- };
3060
-
3061
- // protected
3062
-
3063
- Tooltip.prototype.isWithContent = function isWithContent() {
3064
- return Boolean(this.getTitle());
3065
- };
3066
-
3067
- Tooltip.prototype.getTipElement = function getTipElement() {
3068
- return this.tip = this.tip || $(this.config.template)[0];
3069
- };
3070
-
3071
- Tooltip.prototype.setContent = function setContent() {
3072
- var $tip = $(this.getTipElement());
3073
-
3074
- this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
3075
-
3076
- $tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
3077
-
3078
- this.cleanupTether();
3079
- };
3080
-
3081
- Tooltip.prototype.setElementContent = function setElementContent($element, content) {
3082
- var html = this.config.html;
3083
- if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && (content.nodeType || content.jquery)) {
3084
- // content is a DOM node or a jQuery
3085
- if (html) {
3086
- if (!$(content).parent().is($element)) {
3087
- $element.empty().append(content);
3088
- }
3089
- } else {
3090
- $element.text($(content).text());
3091
- }
3092
- } else {
3093
- $element[html ? 'html' : 'text'](content);
3094
- }
3095
- };
3096
-
3097
- Tooltip.prototype.getTitle = function getTitle() {
3098
- var title = this.element.getAttribute('data-original-title');
3099
-
3100
- if (!title) {
3101
- title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
3102
- }
3103
-
3104
- return title;
3105
- };
3106
-
3107
- Tooltip.prototype.cleanupTether = function cleanupTether() {
3108
- if (this._tether) {
3109
- this._tether.destroy();
3110
- }
3111
- };
3112
-
3113
- // private
3114
-
3115
- Tooltip.prototype._getAttachment = function _getAttachment(placement) {
3116
- return AttachmentMap[placement.toUpperCase()];
3117
- };
3118
-
3119
- Tooltip.prototype._setListeners = function _setListeners() {
3120
- var _this24 = this;
3121
-
3122
- var triggers = this.config.trigger.split(' ');
3123
-
3124
- triggers.forEach(function (trigger) {
3125
- if (trigger === 'click') {
3126
- $(_this24.element).on(_this24.constructor.Event.CLICK, _this24.config.selector, function (event) {
3127
- return _this24.toggle(event);
3128
- });
3129
- } else if (trigger !== Trigger.MANUAL) {
3130
- var eventIn = trigger === Trigger.HOVER ? _this24.constructor.Event.MOUSEENTER : _this24.constructor.Event.FOCUSIN;
3131
- var eventOut = trigger === Trigger.HOVER ? _this24.constructor.Event.MOUSELEAVE : _this24.constructor.Event.FOCUSOUT;
3132
-
3133
- $(_this24.element).on(eventIn, _this24.config.selector, function (event) {
3134
- return _this24._enter(event);
3135
- }).on(eventOut, _this24.config.selector, function (event) {
3136
- return _this24._leave(event);
3137
- });
3138
- }
3139
-
3140
- $(_this24.element).closest('.modal').on('hide.bs.modal', function () {
3141
- return _this24.hide();
3142
- });
3143
- });
3144
-
3145
- if (this.config.selector) {
3146
- this.config = $.extend({}, this.config, {
3147
- trigger: 'manual',
3148
- selector: ''
3149
- });
3150
- } else {
3151
- this._fixTitle();
3152
- }
3153
- };
3154
-
3155
- Tooltip.prototype._fixTitle = function _fixTitle() {
3156
- var titleType = _typeof(this.element.getAttribute('data-original-title'));
3157
- if (this.element.getAttribute('title') || titleType !== 'string') {
3158
- this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
3159
- this.element.setAttribute('title', '');
3160
- }
3161
- };
3162
-
3163
- Tooltip.prototype._enter = function _enter(event, context) {
3164
- var dataKey = this.constructor.DATA_KEY;
3165
-
3166
- context = context || $(event.currentTarget).data(dataKey);
3167
-
3168
- if (!context) {
3169
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
3170
- $(event.currentTarget).data(dataKey, context);
3171
- }
3172
-
3173
- if (event) {
3174
- context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
3175
- }
3176
-
3177
- if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
3178
- context._hoverState = HoverState.SHOW;
3179
- return;
3180
- }
3181
-
3182
- clearTimeout(context._timeout);
3183
-
3184
- context._hoverState = HoverState.SHOW;
3185
-
3186
- if (!context.config.delay || !context.config.delay.show) {
3187
- context.show();
3188
- return;
3189
- }
3190
-
3191
- context._timeout = setTimeout(function () {
3192
- if (context._hoverState === HoverState.SHOW) {
3193
- context.show();
3194
- }
3195
- }, context.config.delay.show);
3196
- };
3197
-
3198
- Tooltip.prototype._leave = function _leave(event, context) {
3199
- var dataKey = this.constructor.DATA_KEY;
3200
-
3201
- context = context || $(event.currentTarget).data(dataKey);
3202
-
3203
- if (!context) {
3204
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
3205
- $(event.currentTarget).data(dataKey, context);
3206
- }
3207
-
3208
- if (event) {
3209
- context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
3210
- }
3211
-
3212
- if (context._isWithActiveTrigger()) {
3213
- return;
3214
- }
3215
-
3216
- clearTimeout(context._timeout);
3217
-
3218
- context._hoverState = HoverState.OUT;
3219
-
3220
- if (!context.config.delay || !context.config.delay.hide) {
3221
- context.hide();
3222
- return;
3223
- }
3224
-
3225
- context._timeout = setTimeout(function () {
3226
- if (context._hoverState === HoverState.OUT) {
3227
- context.hide();
3228
- }
3229
- }, context.config.delay.hide);
3230
- };
3231
-
3232
- Tooltip.prototype._isWithActiveTrigger = function _isWithActiveTrigger() {
3233
- for (var trigger in this._activeTrigger) {
3234
- if (this._activeTrigger[trigger]) {
3235
- return true;
3236
- }
3237
- }
3238
-
3239
- return false;
3240
- };
3241
-
3242
- Tooltip.prototype._getConfig = function _getConfig(config) {
3243
- config = $.extend({}, this.constructor.Default, $(this.element).data(), config);
3244
-
3245
- if (config.delay && typeof config.delay === 'number') {
3246
- config.delay = {
3247
- show: config.delay,
3248
- hide: config.delay
3249
- };
3250
- }
3251
-
3252
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
3253
-
3254
- return config;
3255
- };
3256
-
3257
- Tooltip.prototype._getDelegateConfig = function _getDelegateConfig() {
3258
- var config = {};
3259
-
3260
- if (this.config) {
3261
- for (var key in this.config) {
3262
- if (this.constructor.Default[key] !== this.config[key]) {
3263
- config[key] = this.config[key];
3264
- }
3265
- }
3266
- }
3267
-
3268
- return config;
3269
- };
3270
-
3271
- // static
3272
-
3273
- Tooltip._jQueryInterface = function _jQueryInterface(config) {
3274
- return this.each(function () {
3275
- var data = $(this).data(DATA_KEY);
3276
- var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config;
3277
-
3278
- if (!data && /dispose|hide/.test(config)) {
3279
- return;
3280
- }
3281
-
3282
- if (!data) {
3283
- data = new Tooltip(this, _config);
3284
- $(this).data(DATA_KEY, data);
3285
- }
3286
-
3287
- if (typeof config === 'string') {
3288
- if (data[config] === undefined) {
3289
- throw new Error('No method named "' + config + '"');
3290
- }
3291
- data[config]();
3292
- }
3293
- });
3294
- };
3295
-
3296
- _createClass(Tooltip, null, [{
3297
- key: 'VERSION',
3298
- get: function get() {
3299
- return VERSION;
3300
- }
3301
- }, {
3302
- key: 'Default',
3303
- get: function get() {
3304
- return Default;
3305
- }
3306
- }, {
3307
- key: 'NAME',
3308
- get: function get() {
3309
- return NAME;
3310
- }
3311
- }, {
3312
- key: 'DATA_KEY',
3313
- get: function get() {
3314
- return DATA_KEY;
3315
- }
3316
- }, {
3317
- key: 'Event',
3318
- get: function get() {
3319
- return Event;
3320
- }
3321
- }, {
3322
- key: 'EVENT_KEY',
3323
- get: function get() {
3324
- return EVENT_KEY;
3325
- }
3326
- }, {
3327
- key: 'DefaultType',
3328
- get: function get() {
3329
- return DefaultType;
3330
- }
3331
- }]);
3332
-
3333
- return Tooltip;
3334
- }();
3335
-
3336
- /**
3337
- * ------------------------------------------------------------------------
3338
- * jQuery
3339
- * ------------------------------------------------------------------------
3340
- */
3341
-
3342
- $.fn[NAME] = Tooltip._jQueryInterface;
3343
- $.fn[NAME].Constructor = Tooltip;
3344
- $.fn[NAME].noConflict = function () {
3345
- $.fn[NAME] = JQUERY_NO_CONFLICT;
3346
- return Tooltip._jQueryInterface;
3347
- };
3348
-
3349
- return Tooltip;
3350
- }(jQuery);
3351
-
3352
- /**
3353
- * --------------------------------------------------------------------------
3354
- * Bootstrap (v4.0.0-alpha.6): popover.js
3355
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3356
- * --------------------------------------------------------------------------
3357
- */
3358
-
3359
- var Popover = function ($) {
3360
-
3361
- /**
3362
- * ------------------------------------------------------------------------
3363
- * Constants
3364
- * ------------------------------------------------------------------------
3365
- */
3366
-
3367
- var NAME = 'popover';
3368
- var VERSION = '4.0.0-alpha.6';
3369
- var DATA_KEY = 'bs.popover';
3370
- var EVENT_KEY = '.' + DATA_KEY;
3371
- var JQUERY_NO_CONFLICT = $.fn[NAME];
3372
-
3373
- var Default = $.extend({}, Tooltip.Default, {
3374
- placement: 'right',
3375
- trigger: 'click',
3376
- content: '',
3377
- template: '<div class="popover" role="tooltip">' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
3378
- });
3379
-
3380
- var DefaultType = $.extend({}, Tooltip.DefaultType, {
3381
- content: '(string|element|function)'
3382
- });
3383
-
3384
- var ClassName = {
3385
- FADE: 'fade',
3386
- SHOW: 'show'
3387
- };
3388
-
3389
- var Selector = {
3390
- TITLE: '.popover-title',
3391
- CONTENT: '.popover-content'
3392
- };
3393
-
3394
- var Event = {
3395
- HIDE: 'hide' + EVENT_KEY,
3396
- HIDDEN: 'hidden' + EVENT_KEY,
3397
- SHOW: 'show' + EVENT_KEY,
3398
- SHOWN: 'shown' + EVENT_KEY,
3399
- INSERTED: 'inserted' + EVENT_KEY,
3400
- CLICK: 'click' + EVENT_KEY,
3401
- FOCUSIN: 'focusin' + EVENT_KEY,
3402
- FOCUSOUT: 'focusout' + EVENT_KEY,
3403
- MOUSEENTER: 'mouseenter' + EVENT_KEY,
3404
- MOUSELEAVE: 'mouseleave' + EVENT_KEY
3405
- };
3406
-
3407
- /**
3408
- * ------------------------------------------------------------------------
3409
- * Class Definition
3410
- * ------------------------------------------------------------------------
3411
- */
3412
-
3413
- var Popover = function (_Tooltip) {
3414
- _inherits(Popover, _Tooltip);
3415
-
3416
- function Popover() {
3417
- _classCallCheck(this, Popover);
3418
-
3419
- return _possibleConstructorReturn(this, _Tooltip.apply(this, arguments));
3420
- }
3421
-
3422
- // overrides
3423
-
3424
- Popover.prototype.isWithContent = function isWithContent() {
3425
- return this.getTitle() || this._getContent();
3426
- };
3427
-
3428
- Popover.prototype.getTipElement = function getTipElement() {
3429
- return this.tip = this.tip || $(this.config.template)[0];
3430
- };
3431
-
3432
- Popover.prototype.setContent = function setContent() {
3433
- var $tip = $(this.getTipElement());
3434
-
3435
- // we use append for html objects to maintain js events
3436
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
3437
- this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
3438
-
3439
- $tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
3440
-
3441
- this.cleanupTether();
3442
- };
3443
-
3444
- // private
3445
-
3446
- Popover.prototype._getContent = function _getContent() {
3447
- return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
3448
- };
3449
-
3450
- // static
3451
-
3452
- Popover._jQueryInterface = function _jQueryInterface(config) {
3453
- return this.each(function () {
3454
- var data = $(this).data(DATA_KEY);
3455
- var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;
3456
-
3457
- if (!data && /destroy|hide/.test(config)) {
3458
- return;
3459
- }
3460
-
3461
- if (!data) {
3462
- data = new Popover(this, _config);
3463
- $(this).data(DATA_KEY, data);
3464
- }
3465
-
3466
- if (typeof config === 'string') {
3467
- if (data[config] === undefined) {
3468
- throw new Error('No method named "' + config + '"');
3469
- }
3470
- data[config]();
3471
- }
3472
- });
3473
- };
3474
-
3475
- _createClass(Popover, null, [{
3476
- key: 'VERSION',
3477
-
3478
-
3479
- // getters
3480
-
3481
- get: function get() {
3482
- return VERSION;
3483
- }
3484
- }, {
3485
- key: 'Default',
3486
- get: function get() {
3487
- return Default;
3488
- }
3489
- }, {
3490
- key: 'NAME',
3491
- get: function get() {
3492
- return NAME;
3493
- }
3494
- }, {
3495
- key: 'DATA_KEY',
3496
- get: function get() {
3497
- return DATA_KEY;
3498
- }
3499
- }, {
3500
- key: 'Event',
3501
- get: function get() {
3502
- return Event;
3503
- }
3504
- }, {
3505
- key: 'EVENT_KEY',
3506
- get: function get() {
3507
- return EVENT_KEY;
3508
- }
3509
- }, {
3510
- key: 'DefaultType',
3511
- get: function get() {
3512
- return DefaultType;
3513
- }
3514
- }]);
3515
-
3516
- return Popover;
3517
- }(Tooltip);
3518
-
3519
- /**
3520
- * ------------------------------------------------------------------------
3521
- * jQuery
3522
- * ------------------------------------------------------------------------
3523
- */
3524
-
3525
- $.fn[NAME] = Popover._jQueryInterface;
3526
- $.fn[NAME].Constructor = Popover;
3527
- $.fn[NAME].noConflict = function () {
3528
- $.fn[NAME] = JQUERY_NO_CONFLICT;
3529
- return Popover._jQueryInterface;
3530
- };
3531
-
3532
- return Popover;
3533
- }(jQuery);
3534
-
3535
- }();