praxis 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/CHANGELOG.md +16 -0
  4. data/lib/api_browser/Gruntfile.js +125 -16
  5. data/lib/api_browser/app/index.html +5 -1
  6. data/lib/api_browser/app/js/directives/fixed_if_fits.js +28 -17
  7. data/lib/api_browser/app/js/directives/highlight.js +14 -0
  8. data/lib/api_browser/app/js/directives/request_examples.js +29 -0
  9. data/lib/api_browser/app/js/factories/Documentation.js +6 -0
  10. data/lib/api_browser/app/js/factories/Example.js +47 -0
  11. data/lib/api_browser/app/js/factories/prepare_template.js +15 -0
  12. data/lib/api_browser/app/js/factories/template_for.js +2 -12
  13. data/lib/api_browser/app/sass/modules/_sidebar.scss +2 -0
  14. data/lib/api_browser/app/views/action.html +6 -24
  15. data/lib/api_browser/app/views/examples/general.html +26 -0
  16. data/lib/api_browser/{bower.json → bower_template.json} +13 -3
  17. data/lib/api_browser/package.json +3 -1
  18. data/lib/praxis/application.rb +2 -0
  19. data/lib/praxis/docs/generator.rb +4 -2
  20. data/lib/praxis/extensions/field_selection/field_selector.rb +1 -0
  21. data/lib/praxis/media_type.rb +1 -1
  22. data/lib/praxis/plugin.rb +4 -0
  23. data/lib/praxis/plugin_concern.rb +2 -1
  24. data/lib/praxis/tasks/api_docs.rb +9 -2
  25. data/lib/praxis/version.rb +1 -1
  26. data/praxis.gemspec +2 -2
  27. data/spec/praxis/action_definition_spec.rb +26 -1
  28. data/spec/praxis/extensions/field_selection/field_selector_spec.rb +4 -0
  29. data/spec/praxis/media_type_spec.rb +4 -3
  30. data/spec/support/spec_media_types.rb +5 -1
  31. metadata +12 -242
  32. data/lib/api_browser/app/bower_components/angular-mocks/.bower.json +0 -19
  33. data/lib/api_browser/app/bower_components/angular-mocks/README.md +0 -63
  34. data/lib/api_browser/app/bower_components/angular-mocks/angular-mocks.js +0 -2452
  35. data/lib/api_browser/app/bower_components/angular-mocks/bower.json +0 -9
  36. data/lib/api_browser/app/bower_components/angular-mocks/ngAnimateMock.js +0 -2
  37. data/lib/api_browser/app/bower_components/angular-mocks/ngMock.js +0 -2
  38. data/lib/api_browser/app/bower_components/angular-mocks/ngMockE2E.js +0 -2
  39. data/lib/api_browser/app/bower_components/angular-mocks/package.json +0 -27
  40. data/lib/api_browser/app/bower_components/angular-sanitize/.bower.json +0 -19
  41. data/lib/api_browser/app/bower_components/angular-sanitize/README.md +0 -68
  42. data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.js +0 -683
  43. data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.min.js +0 -16
  44. data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.min.js.map +0 -8
  45. data/lib/api_browser/app/bower_components/angular-sanitize/bower.json +0 -9
  46. data/lib/api_browser/app/bower_components/angular-sanitize/index.js +0 -2
  47. data/lib/api_browser/app/bower_components/angular-sanitize/package.json +0 -26
  48. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/.bower.json +0 -31
  49. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/bower.json +0 -19
  50. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-csp.css +0 -6
  51. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-tpls.js +0 -4840
  52. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-tpls.min.js +0 -10
  53. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap.js +0 -4461
  54. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap.min.js +0 -9
  55. data/lib/api_browser/app/bower_components/angular-ui-router/.bower.json +0 -33
  56. data/lib/api_browser/app/bower_components/angular-ui-router/CHANGELOG.md +0 -228
  57. data/lib/api_browser/app/bower_components/angular-ui-router/CONTRIBUTING.md +0 -65
  58. data/lib/api_browser/app/bower_components/angular-ui-router/LICENSE +0 -21
  59. data/lib/api_browser/app/bower_components/angular-ui-router/README.md +0 -245
  60. data/lib/api_browser/app/bower_components/angular-ui-router/api/angular-ui-router.d.ts +0 -126
  61. data/lib/api_browser/app/bower_components/angular-ui-router/bower.json +0 -23
  62. data/lib/api_browser/app/bower_components/angular-ui-router/release/angular-ui-router.js +0 -4370
  63. data/lib/api_browser/app/bower_components/angular-ui-router/release/angular-ui-router.min.js +0 -7
  64. data/lib/api_browser/app/bower_components/angular-ui-router/src/common.js +0 -292
  65. data/lib/api_browser/app/bower_components/angular-ui-router/src/resolve.js +0 -252
  66. data/lib/api_browser/app/bower_components/angular-ui-router/src/state.js +0 -1465
  67. data/lib/api_browser/app/bower_components/angular-ui-router/src/stateDirectives.js +0 -285
  68. data/lib/api_browser/app/bower_components/angular-ui-router/src/stateFilters.js +0 -39
  69. data/lib/api_browser/app/bower_components/angular-ui-router/src/templateFactory.js +0 -110
  70. data/lib/api_browser/app/bower_components/angular-ui-router/src/urlMatcherFactory.js +0 -1050
  71. data/lib/api_browser/app/bower_components/angular-ui-router/src/urlRouter.js +0 -427
  72. data/lib/api_browser/app/bower_components/angular-ui-router/src/view.js +0 -71
  73. data/lib/api_browser/app/bower_components/angular-ui-router/src/viewDirective.js +0 -303
  74. data/lib/api_browser/app/bower_components/angular-ui-router/src/viewScroll.js +0 -52
  75. data/lib/api_browser/app/bower_components/angular/.bower.json +0 -17
  76. data/lib/api_browser/app/bower_components/angular/README.md +0 -64
  77. data/lib/api_browser/app/bower_components/angular/angular-csp.css +0 -21
  78. data/lib/api_browser/app/bower_components/angular/angular.js +0 -28133
  79. data/lib/api_browser/app/bower_components/angular/angular.min.js +0 -289
  80. data/lib/api_browser/app/bower_components/angular/angular.min.js.gzip +0 -0
  81. data/lib/api_browser/app/bower_components/angular/angular.min.js.map +0 -8
  82. data/lib/api_browser/app/bower_components/angular/bower.json +0 -8
  83. data/lib/api_browser/app/bower_components/angular/index.js +0 -2
  84. data/lib/api_browser/app/bower_components/angular/package.json +0 -25
  85. data/lib/api_browser/app/bower_components/bootstrap-sass/.bower.json +0 -41
  86. data/lib/api_browser/app/bower_components/bootstrap-sass/CHANGELOG.md +0 -108
  87. data/lib/api_browser/app/bower_components/bootstrap-sass/CONTRIBUTING.md +0 -79
  88. data/lib/api_browser/app/bower_components/bootstrap-sass/README.md +0 -218
  89. data/lib/api_browser/app/bower_components/bootstrap-sass/bower.json +0 -22
  90. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  91. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -229
  92. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  93. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  94. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap.js +0 -12
  95. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/affix.js +0 -126
  96. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/alert.js +0 -98
  97. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/button.js +0 -115
  98. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/carousel.js +0 -217
  99. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/collapse.js +0 -179
  100. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/dropdown.js +0 -154
  101. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/modal.js +0 -246
  102. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/popover.js +0 -117
  103. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/scrollspy.js +0 -158
  104. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/tab.js +0 -135
  105. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/tooltip.js +0 -386
  106. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/transition.js +0 -56
  107. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap.scss +0 -1
  108. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_alerts.scss +0 -67
  109. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_badges.scss +0 -51
  110. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_breadcrumbs.scss +0 -23
  111. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_button-groups.scss +0 -227
  112. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_buttons.scss +0 -155
  113. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_carousel.scss +0 -232
  114. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_close.scss +0 -35
  115. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_code.scss +0 -53
  116. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_component-animations.scss +0 -29
  117. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +0 -188
  118. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_forms.scss +0 -374
  119. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_glyphicons.scss +0 -237
  120. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_grid.scss +0 -79
  121. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_input-groups.scss +0 -136
  122. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_jumbotron.scss +0 -46
  123. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_labels.scss +0 -64
  124. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_list-group.scss +0 -88
  125. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_media.scss +0 -56
  126. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_mixins.scss +0 -848
  127. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_modals.scss +0 -129
  128. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_navbar.scss +0 -616
  129. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_navs.scss +0 -242
  130. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_normalize.scss +0 -406
  131. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_pager.scss +0 -55
  132. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_pagination.scss +0 -85
  133. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_panels.scss +0 -182
  134. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_popovers.scss +0 -133
  135. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_print.scss +0 -105
  136. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_progress-bars.scss +0 -80
  137. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss +0 -198
  138. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_scaffolding.scss +0 -119
  139. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_tables.scss +0 -231
  140. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_theme.scss +0 -247
  141. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +0 -38
  142. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_tooltip.scss +0 -95
  143. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_type.scss +0 -281
  144. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_utilities.scss +0 -56
  145. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_variables.scss +0 -646
  146. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_wells.scss +0 -29
  147. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/bootstrap.scss +0 -49
  148. data/lib/api_browser/app/bower_components/jquery/.bower.json +0 -38
  149. data/lib/api_browser/app/bower_components/jquery/MIT-LICENSE.txt +0 -21
  150. data/lib/api_browser/app/bower_components/jquery/bower.json +0 -27
  151. data/lib/api_browser/app/bower_components/jquery/dist/jquery.js +0 -9190
  152. data/lib/api_browser/app/bower_components/jquery/dist/jquery.min.js +0 -5
  153. data/lib/api_browser/app/bower_components/jquery/dist/jquery.min.map +0 -1
  154. data/lib/api_browser/app/bower_components/jquery/src/ajax.js +0 -806
  155. data/lib/api_browser/app/bower_components/jquery/src/ajax/jsonp.js +0 -89
  156. data/lib/api_browser/app/bower_components/jquery/src/ajax/load.js +0 -75
  157. data/lib/api_browser/app/bower_components/jquery/src/ajax/parseJSON.js +0 -13
  158. data/lib/api_browser/app/bower_components/jquery/src/ajax/parseXML.js +0 -28
  159. data/lib/api_browser/app/bower_components/jquery/src/ajax/script.js +0 -64
  160. data/lib/api_browser/app/bower_components/jquery/src/ajax/var/nonce.js +0 -5
  161. data/lib/api_browser/app/bower_components/jquery/src/ajax/var/rquery.js +0 -3
  162. data/lib/api_browser/app/bower_components/jquery/src/ajax/xhr.js +0 -135
  163. data/lib/api_browser/app/bower_components/jquery/src/attributes.js +0 -11
  164. data/lib/api_browser/app/bower_components/jquery/src/attributes/attr.js +0 -143
  165. data/lib/api_browser/app/bower_components/jquery/src/attributes/classes.js +0 -158
  166. data/lib/api_browser/app/bower_components/jquery/src/attributes/prop.js +0 -96
  167. data/lib/api_browser/app/bower_components/jquery/src/attributes/support.js +0 -35
  168. data/lib/api_browser/app/bower_components/jquery/src/attributes/val.js +0 -163
  169. data/lib/api_browser/app/bower_components/jquery/src/callbacks.js +0 -205
  170. data/lib/api_browser/app/bower_components/jquery/src/core.js +0 -498
  171. data/lib/api_browser/app/bower_components/jquery/src/core/access.js +0 -60
  172. data/lib/api_browser/app/bower_components/jquery/src/core/init.js +0 -123
  173. data/lib/api_browser/app/bower_components/jquery/src/core/parseHTML.js +0 -39
  174. data/lib/api_browser/app/bower_components/jquery/src/core/ready.js +0 -97
  175. data/lib/api_browser/app/bower_components/jquery/src/core/var/rsingleTag.js +0 -4
  176. data/lib/api_browser/app/bower_components/jquery/src/css.js +0 -451
  177. data/lib/api_browser/app/bower_components/jquery/src/css/addGetHookIf.js +0 -24
  178. data/lib/api_browser/app/bower_components/jquery/src/css/curCSS.js +0 -57
  179. data/lib/api_browser/app/bower_components/jquery/src/css/defaultDisplay.js +0 -70
  180. data/lib/api_browser/app/bower_components/jquery/src/css/hiddenVisibleSelectors.js +0 -15
  181. data/lib/api_browser/app/bower_components/jquery/src/css/support.js +0 -91
  182. data/lib/api_browser/app/bower_components/jquery/src/css/swap.js +0 -28
  183. data/lib/api_browser/app/bower_components/jquery/src/css/var/cssExpand.js +0 -3
  184. data/lib/api_browser/app/bower_components/jquery/src/css/var/getStyles.js +0 -5
  185. data/lib/api_browser/app/bower_components/jquery/src/css/var/isHidden.js +0 -13
  186. data/lib/api_browser/app/bower_components/jquery/src/css/var/rmargin.js +0 -3
  187. data/lib/api_browser/app/bower_components/jquery/src/css/var/rnumnonpx.js +0 -5
  188. data/lib/api_browser/app/bower_components/jquery/src/data.js +0 -179
  189. data/lib/api_browser/app/bower_components/jquery/src/data/Data.js +0 -181
  190. data/lib/api_browser/app/bower_components/jquery/src/data/accepts.js +0 -20
  191. data/lib/api_browser/app/bower_components/jquery/src/data/var/data_priv.js +0 -5
  192. data/lib/api_browser/app/bower_components/jquery/src/data/var/data_user.js +0 -5
  193. data/lib/api_browser/app/bower_components/jquery/src/deferred.js +0 -149
  194. data/lib/api_browser/app/bower_components/jquery/src/deprecated.js +0 -13
  195. data/lib/api_browser/app/bower_components/jquery/src/dimensions.js +0 -50
  196. data/lib/api_browser/app/bower_components/jquery/src/effects.js +0 -649
  197. data/lib/api_browser/app/bower_components/jquery/src/effects/Tween.js +0 -114
  198. data/lib/api_browser/app/bower_components/jquery/src/effects/animatedSelector.js +0 -13
  199. data/lib/api_browser/app/bower_components/jquery/src/event.js +0 -868
  200. data/lib/api_browser/app/bower_components/jquery/src/event/alias.js +0 -39
  201. data/lib/api_browser/app/bower_components/jquery/src/event/support.js +0 -9
  202. data/lib/api_browser/app/bower_components/jquery/src/exports/amd.js +0 -24
  203. data/lib/api_browser/app/bower_components/jquery/src/exports/global.js +0 -32
  204. data/lib/api_browser/app/bower_components/jquery/src/intro.js +0 -44
  205. data/lib/api_browser/app/bower_components/jquery/src/jquery.js +0 -36
  206. data/lib/api_browser/app/bower_components/jquery/src/manipulation.js +0 -582
  207. data/lib/api_browser/app/bower_components/jquery/src/manipulation/_evalUrl.js +0 -18
  208. data/lib/api_browser/app/bower_components/jquery/src/manipulation/support.js +0 -31
  209. data/lib/api_browser/app/bower_components/jquery/src/manipulation/var/rcheckableType.js +0 -3
  210. data/lib/api_browser/app/bower_components/jquery/src/offset.js +0 -204
  211. data/lib/api_browser/app/bower_components/jquery/src/outro.js +0 -1
  212. data/lib/api_browser/app/bower_components/jquery/src/queue.js +0 -142
  213. data/lib/api_browser/app/bower_components/jquery/src/queue/delay.js +0 -22
  214. data/lib/api_browser/app/bower_components/jquery/src/selector-native.js +0 -172
  215. data/lib/api_browser/app/bower_components/jquery/src/selector-sizzle.js +0 -14
  216. data/lib/api_browser/app/bower_components/jquery/src/selector.js +0 -1
  217. data/lib/api_browser/app/bower_components/jquery/src/serialize.js +0 -111
  218. data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.js +0 -2044
  219. data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.min.js +0 -3
  220. data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.min.map +0 -1
  221. data/lib/api_browser/app/bower_components/jquery/src/traversing.js +0 -200
  222. data/lib/api_browser/app/bower_components/jquery/src/traversing/findFilter.js +0 -100
  223. data/lib/api_browser/app/bower_components/jquery/src/traversing/var/rneedsContext.js +0 -6
  224. data/lib/api_browser/app/bower_components/jquery/src/var/arr.js +0 -3
  225. data/lib/api_browser/app/bower_components/jquery/src/var/class2type.js +0 -4
  226. data/lib/api_browser/app/bower_components/jquery/src/var/concat.js +0 -5
  227. data/lib/api_browser/app/bower_components/jquery/src/var/hasOwn.js +0 -5
  228. data/lib/api_browser/app/bower_components/jquery/src/var/indexOf.js +0 -5
  229. data/lib/api_browser/app/bower_components/jquery/src/var/pnum.js +0 -3
  230. data/lib/api_browser/app/bower_components/jquery/src/var/push.js +0 -5
  231. data/lib/api_browser/app/bower_components/jquery/src/var/rnotwhite.js +0 -3
  232. data/lib/api_browser/app/bower_components/jquery/src/var/slice.js +0 -5
  233. data/lib/api_browser/app/bower_components/jquery/src/var/strundefined.js +0 -3
  234. data/lib/api_browser/app/bower_components/jquery/src/var/support.js +0 -4
  235. data/lib/api_browser/app/bower_components/jquery/src/var/toString.js +0 -5
  236. data/lib/api_browser/app/bower_components/jquery/src/wrap.js +0 -78
  237. data/lib/api_browser/app/bower_components/lodash/.bower.json +0 -30
  238. data/lib/api_browser/app/bower_components/lodash/LICENSE.txt +0 -22
  239. data/lib/api_browser/app/bower_components/lodash/bower.json +0 -20
  240. data/lib/api_browser/app/bower_components/lodash/lodash.js +0 -12235
  241. data/lib/api_browser/app/bower_components/lodash/lodash.min.js +0 -98
  242. data/lib/api_browser/app/bower_components/showdown/.bower.json +0 -39
  243. data/lib/api_browser/app/bower_components/showdown/.jshintignore +0 -2
  244. data/lib/api_browser/app/bower_components/showdown/.travis.yml +0 -8
  245. data/lib/api_browser/app/bower_components/showdown/Gruntfile.js +0 -100
  246. data/lib/api_browser/app/bower_components/showdown/README.md +0 -317
  247. data/lib/api_browser/app/bower_components/showdown/bower.json +0 -26
  248. data/lib/api_browser/app/bower_components/showdown/compressed/Showdown.js +0 -1606
  249. data/lib/api_browser/app/bower_components/showdown/compressed/Showdown.js.map +0 -1
  250. data/lib/api_browser/app/bower_components/showdown/compressed/Showdown.min.js +0 -2
  251. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/github.min.js +0 -2
  252. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/github.min.js.map +0 -1
  253. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/prettify.min.js +0 -2
  254. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/prettify.min.js.map +0 -1
  255. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/table.min.js +0 -2
  256. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/table.min.js.map +0 -1
  257. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/twitter.min.js +0 -2
  258. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/twitter.min.js.map +0 -1
  259. data/lib/api_browser/app/bower_components/showdown/license.txt +0 -34
  260. data/lib/api_browser/app/bower_components/showdown/package.json +0 -47
  261. data/lib/api_browser/app/bower_components/showdown/src/extensions/github.js +0 -25
  262. data/lib/api_browser/app/bower_components/showdown/src/extensions/prettify.js +0 -29
  263. data/lib/api_browser/app/bower_components/showdown/src/extensions/table.js +0 -106
  264. data/lib/api_browser/app/bower_components/showdown/src/extensions/twitter.js +0 -42
  265. data/lib/api_browser/app/bower_components/showdown/src/ng-showdown.js +0 -150
  266. data/lib/api_browser/app/bower_components/showdown/src/showdown.js +0 -1454
@@ -1,117 +0,0 @@
1
- /* ========================================================================
2
- * Bootstrap: popover.js v3.0.3
3
- * http://getbootstrap.com/javascript/#popovers
4
- * ========================================================================
5
- * Copyright 2013 Twitter, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- * ======================================================================== */
19
-
20
-
21
- +function ($) { "use strict";
22
-
23
- // POPOVER PUBLIC CLASS DEFINITION
24
- // ===============================
25
-
26
- var Popover = function (element, options) {
27
- this.init('popover', element, options)
28
- }
29
-
30
- if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
31
-
32
- Popover.DEFAULTS = $.extend({} , $.fn.tooltip.Constructor.DEFAULTS, {
33
- placement: 'right'
34
- , trigger: 'click'
35
- , content: ''
36
- , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
37
- })
38
-
39
-
40
- // NOTE: POPOVER EXTENDS tooltip.js
41
- // ================================
42
-
43
- Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
44
-
45
- Popover.prototype.constructor = Popover
46
-
47
- Popover.prototype.getDefaults = function () {
48
- return Popover.DEFAULTS
49
- }
50
-
51
- Popover.prototype.setContent = function () {
52
- var $tip = this.tip()
53
- var title = this.getTitle()
54
- var content = this.getContent()
55
-
56
- $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
57
- $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
58
-
59
- $tip.removeClass('fade top bottom left right in')
60
-
61
- // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
62
- // this manually by checking the contents.
63
- if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
64
- }
65
-
66
- Popover.prototype.hasContent = function () {
67
- return this.getTitle() || this.getContent()
68
- }
69
-
70
- Popover.prototype.getContent = function () {
71
- var $e = this.$element
72
- var o = this.options
73
-
74
- return $e.attr('data-content')
75
- || (typeof o.content == 'function' ?
76
- o.content.call($e[0]) :
77
- o.content)
78
- }
79
-
80
- Popover.prototype.arrow = function () {
81
- return this.$arrow = this.$arrow || this.tip().find('.arrow')
82
- }
83
-
84
- Popover.prototype.tip = function () {
85
- if (!this.$tip) this.$tip = $(this.options.template)
86
- return this.$tip
87
- }
88
-
89
-
90
- // POPOVER PLUGIN DEFINITION
91
- // =========================
92
-
93
- var old = $.fn.popover
94
-
95
- $.fn.popover = function (option) {
96
- return this.each(function () {
97
- var $this = $(this)
98
- var data = $this.data('bs.popover')
99
- var options = typeof option == 'object' && option
100
-
101
- if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
102
- if (typeof option == 'string') data[option]()
103
- })
104
- }
105
-
106
- $.fn.popover.Constructor = Popover
107
-
108
-
109
- // POPOVER NO CONFLICT
110
- // ===================
111
-
112
- $.fn.popover.noConflict = function () {
113
- $.fn.popover = old
114
- return this
115
- }
116
-
117
- }(jQuery);
@@ -1,158 +0,0 @@
1
- /* ========================================================================
2
- * Bootstrap: scrollspy.js v3.0.3
3
- * http://getbootstrap.com/javascript/#scrollspy
4
- * ========================================================================
5
- * Copyright 2013 Twitter, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- * ======================================================================== */
19
-
20
-
21
- +function ($) { "use strict";
22
-
23
- // SCROLLSPY CLASS DEFINITION
24
- // ==========================
25
-
26
- function ScrollSpy(element, options) {
27
- var href
28
- var process = $.proxy(this.process, this)
29
-
30
- this.$element = $(element).is('body') ? $(window) : $(element)
31
- this.$body = $('body')
32
- this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
33
- this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
34
- this.selector = (this.options.target
35
- || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
36
- || '') + ' .nav li > a'
37
- this.offsets = $([])
38
- this.targets = $([])
39
- this.activeTarget = null
40
-
41
- this.refresh()
42
- this.process()
43
- }
44
-
45
- ScrollSpy.DEFAULTS = {
46
- offset: 10
47
- }
48
-
49
- ScrollSpy.prototype.refresh = function () {
50
- var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
51
-
52
- this.offsets = $([])
53
- this.targets = $([])
54
-
55
- var self = this
56
- var $targets = this.$body
57
- .find(this.selector)
58
- .map(function () {
59
- var $el = $(this)
60
- var href = $el.data('target') || $el.attr('href')
61
- var $href = /^#\w/.test(href) && $(href)
62
-
63
- return ($href
64
- && $href.length
65
- && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
66
- })
67
- .sort(function (a, b) { return a[0] - b[0] })
68
- .each(function () {
69
- self.offsets.push(this[0])
70
- self.targets.push(this[1])
71
- })
72
- }
73
-
74
- ScrollSpy.prototype.process = function () {
75
- var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
76
- var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
77
- var maxScroll = scrollHeight - this.$scrollElement.height()
78
- var offsets = this.offsets
79
- var targets = this.targets
80
- var activeTarget = this.activeTarget
81
- var i
82
-
83
- if (scrollTop >= maxScroll) {
84
- return activeTarget != (i = targets.last()[0]) && this.activate(i)
85
- }
86
-
87
- for (i = offsets.length; i--;) {
88
- activeTarget != targets[i]
89
- && scrollTop >= offsets[i]
90
- && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
91
- && this.activate( targets[i] )
92
- }
93
- }
94
-
95
- ScrollSpy.prototype.activate = function (target) {
96
- this.activeTarget = target
97
-
98
- $(this.selector)
99
- .parents('.active')
100
- .removeClass('active')
101
-
102
- var selector = this.selector
103
- + '[data-target="' + target + '"],'
104
- + this.selector + '[href="' + target + '"]'
105
-
106
- var active = $(selector)
107
- .parents('li')
108
- .addClass('active')
109
-
110
- if (active.parent('.dropdown-menu').length) {
111
- active = active
112
- .closest('li.dropdown')
113
- .addClass('active')
114
- }
115
-
116
- active.trigger('activate.bs.scrollspy')
117
- }
118
-
119
-
120
- // SCROLLSPY PLUGIN DEFINITION
121
- // ===========================
122
-
123
- var old = $.fn.scrollspy
124
-
125
- $.fn.scrollspy = function (option) {
126
- return this.each(function () {
127
- var $this = $(this)
128
- var data = $this.data('bs.scrollspy')
129
- var options = typeof option == 'object' && option
130
-
131
- if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
132
- if (typeof option == 'string') data[option]()
133
- })
134
- }
135
-
136
- $.fn.scrollspy.Constructor = ScrollSpy
137
-
138
-
139
- // SCROLLSPY NO CONFLICT
140
- // =====================
141
-
142
- $.fn.scrollspy.noConflict = function () {
143
- $.fn.scrollspy = old
144
- return this
145
- }
146
-
147
-
148
- // SCROLLSPY DATA-API
149
- // ==================
150
-
151
- $(window).on('load', function () {
152
- $('[data-spy="scroll"]').each(function () {
153
- var $spy = $(this)
154
- $spy.scrollspy($spy.data())
155
- })
156
- })
157
-
158
- }(jQuery);
@@ -1,135 +0,0 @@
1
- /* ========================================================================
2
- * Bootstrap: tab.js v3.0.3
3
- * http://getbootstrap.com/javascript/#tabs
4
- * ========================================================================
5
- * Copyright 2013 Twitter, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- * ======================================================================== */
19
-
20
-
21
- +function ($) { "use strict";
22
-
23
- // TAB CLASS DEFINITION
24
- // ====================
25
-
26
- var Tab = function (element) {
27
- this.element = $(element)
28
- }
29
-
30
- Tab.prototype.show = function () {
31
- var $this = this.element
32
- var $ul = $this.closest('ul:not(.dropdown-menu)')
33
- var selector = $this.data('target')
34
-
35
- if (!selector) {
36
- selector = $this.attr('href')
37
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
38
- }
39
-
40
- if ($this.parent('li').hasClass('active')) return
41
-
42
- var previous = $ul.find('.active:last a')[0]
43
- var e = $.Event('show.bs.tab', {
44
- relatedTarget: previous
45
- })
46
-
47
- $this.trigger(e)
48
-
49
- if (e.isDefaultPrevented()) return
50
-
51
- var $target = $(selector)
52
-
53
- this.activate($this.parent('li'), $ul)
54
- this.activate($target, $target.parent(), function () {
55
- $this.trigger({
56
- type: 'shown.bs.tab'
57
- , relatedTarget: previous
58
- })
59
- })
60
- }
61
-
62
- Tab.prototype.activate = function (element, container, callback) {
63
- var $active = container.find('> .active')
64
- var transition = callback
65
- && $.support.transition
66
- && $active.hasClass('fade')
67
-
68
- function next() {
69
- $active
70
- .removeClass('active')
71
- .find('> .dropdown-menu > .active')
72
- .removeClass('active')
73
-
74
- element.addClass('active')
75
-
76
- if (transition) {
77
- element[0].offsetWidth // reflow for transition
78
- element.addClass('in')
79
- } else {
80
- element.removeClass('fade')
81
- }
82
-
83
- if (element.parent('.dropdown-menu')) {
84
- element.closest('li.dropdown').addClass('active')
85
- }
86
-
87
- callback && callback()
88
- }
89
-
90
- transition ?
91
- $active
92
- .one($.support.transition.end, next)
93
- .emulateTransitionEnd(150) :
94
- next()
95
-
96
- $active.removeClass('in')
97
- }
98
-
99
-
100
- // TAB PLUGIN DEFINITION
101
- // =====================
102
-
103
- var old = $.fn.tab
104
-
105
- $.fn.tab = function ( option ) {
106
- return this.each(function () {
107
- var $this = $(this)
108
- var data = $this.data('bs.tab')
109
-
110
- if (!data) $this.data('bs.tab', (data = new Tab(this)))
111
- if (typeof option == 'string') data[option]()
112
- })
113
- }
114
-
115
- $.fn.tab.Constructor = Tab
116
-
117
-
118
- // TAB NO CONFLICT
119
- // ===============
120
-
121
- $.fn.tab.noConflict = function () {
122
- $.fn.tab = old
123
- return this
124
- }
125
-
126
-
127
- // TAB DATA-API
128
- // ============
129
-
130
- $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
131
- e.preventDefault()
132
- $(this).tab('show')
133
- })
134
-
135
- }(jQuery);
@@ -1,386 +0,0 @@
1
- /* ========================================================================
2
- * Bootstrap: tooltip.js v3.0.3
3
- * http://getbootstrap.com/javascript/#tooltip
4
- * Inspired by the original jQuery.tipsy by Jason Frame
5
- * ========================================================================
6
- * Copyright 2013 Twitter, Inc.
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
19
- * ======================================================================== */
20
-
21
-
22
- +function ($) { "use strict";
23
-
24
- // TOOLTIP PUBLIC CLASS DEFINITION
25
- // ===============================
26
-
27
- var Tooltip = function (element, options) {
28
- this.type =
29
- this.options =
30
- this.enabled =
31
- this.timeout =
32
- this.hoverState =
33
- this.$element = null
34
-
35
- this.init('tooltip', element, options)
36
- }
37
-
38
- Tooltip.DEFAULTS = {
39
- animation: true
40
- , placement: 'top'
41
- , selector: false
42
- , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
43
- , trigger: 'hover focus'
44
- , title: ''
45
- , delay: 0
46
- , html: false
47
- , container: false
48
- }
49
-
50
- Tooltip.prototype.init = function (type, element, options) {
51
- this.enabled = true
52
- this.type = type
53
- this.$element = $(element)
54
- this.options = this.getOptions(options)
55
-
56
- var triggers = this.options.trigger.split(' ')
57
-
58
- for (var i = triggers.length; i--;) {
59
- var trigger = triggers[i]
60
-
61
- if (trigger == 'click') {
62
- this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
63
- } else if (trigger != 'manual') {
64
- var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
65
- var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
66
-
67
- this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
68
- this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
69
- }
70
- }
71
-
72
- this.options.selector ?
73
- (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
74
- this.fixTitle()
75
- }
76
-
77
- Tooltip.prototype.getDefaults = function () {
78
- return Tooltip.DEFAULTS
79
- }
80
-
81
- Tooltip.prototype.getOptions = function (options) {
82
- options = $.extend({}, this.getDefaults(), this.$element.data(), options)
83
-
84
- if (options.delay && typeof options.delay == 'number') {
85
- options.delay = {
86
- show: options.delay
87
- , hide: options.delay
88
- }
89
- }
90
-
91
- return options
92
- }
93
-
94
- Tooltip.prototype.getDelegateOptions = function () {
95
- var options = {}
96
- var defaults = this.getDefaults()
97
-
98
- this._options && $.each(this._options, function (key, value) {
99
- if (defaults[key] != value) options[key] = value
100
- })
101
-
102
- return options
103
- }
104
-
105
- Tooltip.prototype.enter = function (obj) {
106
- var self = obj instanceof this.constructor ?
107
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
108
-
109
- clearTimeout(self.timeout)
110
-
111
- self.hoverState = 'in'
112
-
113
- if (!self.options.delay || !self.options.delay.show) return self.show()
114
-
115
- self.timeout = setTimeout(function () {
116
- if (self.hoverState == 'in') self.show()
117
- }, self.options.delay.show)
118
- }
119
-
120
- Tooltip.prototype.leave = function (obj) {
121
- var self = obj instanceof this.constructor ?
122
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
123
-
124
- clearTimeout(self.timeout)
125
-
126
- self.hoverState = 'out'
127
-
128
- if (!self.options.delay || !self.options.delay.hide) return self.hide()
129
-
130
- self.timeout = setTimeout(function () {
131
- if (self.hoverState == 'out') self.hide()
132
- }, self.options.delay.hide)
133
- }
134
-
135
- Tooltip.prototype.show = function () {
136
- var e = $.Event('show.bs.'+ this.type)
137
-
138
- if (this.hasContent() && this.enabled) {
139
- this.$element.trigger(e)
140
-
141
- if (e.isDefaultPrevented()) return
142
-
143
- var $tip = this.tip()
144
-
145
- this.setContent()
146
-
147
- if (this.options.animation) $tip.addClass('fade')
148
-
149
- var placement = typeof this.options.placement == 'function' ?
150
- this.options.placement.call(this, $tip[0], this.$element[0]) :
151
- this.options.placement
152
-
153
- var autoToken = /\s?auto?\s?/i
154
- var autoPlace = autoToken.test(placement)
155
- if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
156
-
157
- $tip
158
- .detach()
159
- .css({ top: 0, left: 0, display: 'block' })
160
- .addClass(placement)
161
-
162
- this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
163
-
164
- var pos = this.getPosition()
165
- var actualWidth = $tip[0].offsetWidth
166
- var actualHeight = $tip[0].offsetHeight
167
-
168
- if (autoPlace) {
169
- var $parent = this.$element.parent()
170
-
171
- var orgPlacement = placement
172
- var docScroll = document.documentElement.scrollTop || document.body.scrollTop
173
- var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()
174
- var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()
175
- var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left
176
-
177
- placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
178
- placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
179
- placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
180
- placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
181
- placement
182
-
183
- $tip
184
- .removeClass(orgPlacement)
185
- .addClass(placement)
186
- }
187
-
188
- var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
189
-
190
- this.applyPlacement(calculatedOffset, placement)
191
- this.$element.trigger('shown.bs.' + this.type)
192
- }
193
- }
194
-
195
- Tooltip.prototype.applyPlacement = function(offset, placement) {
196
- var replace
197
- var $tip = this.tip()
198
- var width = $tip[0].offsetWidth
199
- var height = $tip[0].offsetHeight
200
-
201
- // manually read margins because getBoundingClientRect includes difference
202
- var marginTop = parseInt($tip.css('margin-top'), 10)
203
- var marginLeft = parseInt($tip.css('margin-left'), 10)
204
-
205
- // we must check for NaN for ie 8/9
206
- if (isNaN(marginTop)) marginTop = 0
207
- if (isNaN(marginLeft)) marginLeft = 0
208
-
209
- offset.top = offset.top + marginTop
210
- offset.left = offset.left + marginLeft
211
-
212
- $tip
213
- .offset(offset)
214
- .addClass('in')
215
-
216
- // check to see if placing tip in new offset caused the tip to resize itself
217
- var actualWidth = $tip[0].offsetWidth
218
- var actualHeight = $tip[0].offsetHeight
219
-
220
- if (placement == 'top' && actualHeight != height) {
221
- replace = true
222
- offset.top = offset.top + height - actualHeight
223
- }
224
-
225
- if (/bottom|top/.test(placement)) {
226
- var delta = 0
227
-
228
- if (offset.left < 0) {
229
- delta = offset.left * -2
230
- offset.left = 0
231
-
232
- $tip.offset(offset)
233
-
234
- actualWidth = $tip[0].offsetWidth
235
- actualHeight = $tip[0].offsetHeight
236
- }
237
-
238
- this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
239
- } else {
240
- this.replaceArrow(actualHeight - height, actualHeight, 'top')
241
- }
242
-
243
- if (replace) $tip.offset(offset)
244
- }
245
-
246
- Tooltip.prototype.replaceArrow = function(delta, dimension, position) {
247
- this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
248
- }
249
-
250
- Tooltip.prototype.setContent = function () {
251
- var $tip = this.tip()
252
- var title = this.getTitle()
253
-
254
- $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
255
- $tip.removeClass('fade in top bottom left right')
256
- }
257
-
258
- Tooltip.prototype.hide = function () {
259
- var that = this
260
- var $tip = this.tip()
261
- var e = $.Event('hide.bs.' + this.type)
262
-
263
- function complete() {
264
- if (that.hoverState != 'in') $tip.detach()
265
- }
266
-
267
- this.$element.trigger(e)
268
-
269
- if (e.isDefaultPrevented()) return
270
-
271
- $tip.removeClass('in')
272
-
273
- $.support.transition && this.$tip.hasClass('fade') ?
274
- $tip
275
- .one($.support.transition.end, complete)
276
- .emulateTransitionEnd(150) :
277
- complete()
278
-
279
- this.$element.trigger('hidden.bs.' + this.type)
280
-
281
- return this
282
- }
283
-
284
- Tooltip.prototype.fixTitle = function () {
285
- var $e = this.$element
286
- if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
287
- $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
288
- }
289
- }
290
-
291
- Tooltip.prototype.hasContent = function () {
292
- return this.getTitle()
293
- }
294
-
295
- Tooltip.prototype.getPosition = function () {
296
- var el = this.$element[0]
297
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
298
- width: el.offsetWidth
299
- , height: el.offsetHeight
300
- }, this.$element.offset())
301
- }
302
-
303
- Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
304
- return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
305
- placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
306
- placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
307
- /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
308
- }
309
-
310
- Tooltip.prototype.getTitle = function () {
311
- var title
312
- var $e = this.$element
313
- var o = this.options
314
-
315
- title = $e.attr('data-original-title')
316
- || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
317
-
318
- return title
319
- }
320
-
321
- Tooltip.prototype.tip = function () {
322
- return this.$tip = this.$tip || $(this.options.template)
323
- }
324
-
325
- Tooltip.prototype.arrow = function () {
326
- return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
327
- }
328
-
329
- Tooltip.prototype.validate = function () {
330
- if (!this.$element[0].parentNode) {
331
- this.hide()
332
- this.$element = null
333
- this.options = null
334
- }
335
- }
336
-
337
- Tooltip.prototype.enable = function () {
338
- this.enabled = true
339
- }
340
-
341
- Tooltip.prototype.disable = function () {
342
- this.enabled = false
343
- }
344
-
345
- Tooltip.prototype.toggleEnabled = function () {
346
- this.enabled = !this.enabled
347
- }
348
-
349
- Tooltip.prototype.toggle = function (e) {
350
- var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
351
- self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
352
- }
353
-
354
- Tooltip.prototype.destroy = function () {
355
- this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
356
- }
357
-
358
-
359
- // TOOLTIP PLUGIN DEFINITION
360
- // =========================
361
-
362
- var old = $.fn.tooltip
363
-
364
- $.fn.tooltip = function (option) {
365
- return this.each(function () {
366
- var $this = $(this)
367
- var data = $this.data('bs.tooltip')
368
- var options = typeof option == 'object' && option
369
-
370
- if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
371
- if (typeof option == 'string') data[option]()
372
- })
373
- }
374
-
375
- $.fn.tooltip.Constructor = Tooltip
376
-
377
-
378
- // TOOLTIP NO CONFLICT
379
- // ===================
380
-
381
- $.fn.tooltip.noConflict = function () {
382
- $.fn.tooltip = old
383
- return this
384
- }
385
-
386
- }(jQuery);