praxis 0.19.0 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
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,181 +0,0 @@
1
- define([
2
- "../core",
3
- "../var/rnotwhite",
4
- "./accepts"
5
- ], function( jQuery, rnotwhite ) {
6
-
7
- function Data() {
8
- // Support: Android < 4,
9
- // Old WebKit does not have Object.preventExtensions/freeze method,
10
- // return new empty object instead with no [[set]] accessor
11
- Object.defineProperty( this.cache = {}, 0, {
12
- get: function() {
13
- return {};
14
- }
15
- });
16
-
17
- this.expando = jQuery.expando + Math.random();
18
- }
19
-
20
- Data.uid = 1;
21
- Data.accepts = jQuery.acceptData;
22
-
23
- Data.prototype = {
24
- key: function( owner ) {
25
- // We can accept data for non-element nodes in modern browsers,
26
- // but we should not, see #8335.
27
- // Always return the key for a frozen object.
28
- if ( !Data.accepts( owner ) ) {
29
- return 0;
30
- }
31
-
32
- var descriptor = {},
33
- // Check if the owner object already has a cache key
34
- unlock = owner[ this.expando ];
35
-
36
- // If not, create one
37
- if ( !unlock ) {
38
- unlock = Data.uid++;
39
-
40
- // Secure it in a non-enumerable, non-writable property
41
- try {
42
- descriptor[ this.expando ] = { value: unlock };
43
- Object.defineProperties( owner, descriptor );
44
-
45
- // Support: Android < 4
46
- // Fallback to a less secure definition
47
- } catch ( e ) {
48
- descriptor[ this.expando ] = unlock;
49
- jQuery.extend( owner, descriptor );
50
- }
51
- }
52
-
53
- // Ensure the cache object
54
- if ( !this.cache[ unlock ] ) {
55
- this.cache[ unlock ] = {};
56
- }
57
-
58
- return unlock;
59
- },
60
- set: function( owner, data, value ) {
61
- var prop,
62
- // There may be an unlock assigned to this node,
63
- // if there is no entry for this "owner", create one inline
64
- // and set the unlock as though an owner entry had always existed
65
- unlock = this.key( owner ),
66
- cache = this.cache[ unlock ];
67
-
68
- // Handle: [ owner, key, value ] args
69
- if ( typeof data === "string" ) {
70
- cache[ data ] = value;
71
-
72
- // Handle: [ owner, { properties } ] args
73
- } else {
74
- // Fresh assignments by object are shallow copied
75
- if ( jQuery.isEmptyObject( cache ) ) {
76
- jQuery.extend( this.cache[ unlock ], data );
77
- // Otherwise, copy the properties one-by-one to the cache object
78
- } else {
79
- for ( prop in data ) {
80
- cache[ prop ] = data[ prop ];
81
- }
82
- }
83
- }
84
- return cache;
85
- },
86
- get: function( owner, key ) {
87
- // Either a valid cache is found, or will be created.
88
- // New caches will be created and the unlock returned,
89
- // allowing direct access to the newly created
90
- // empty data object. A valid owner object must be provided.
91
- var cache = this.cache[ this.key( owner ) ];
92
-
93
- return key === undefined ?
94
- cache : cache[ key ];
95
- },
96
- access: function( owner, key, value ) {
97
- var stored;
98
- // In cases where either:
99
- //
100
- // 1. No key was specified
101
- // 2. A string key was specified, but no value provided
102
- //
103
- // Take the "read" path and allow the get method to determine
104
- // which value to return, respectively either:
105
- //
106
- // 1. The entire cache object
107
- // 2. The data stored at the key
108
- //
109
- if ( key === undefined ||
110
- ((key && typeof key === "string") && value === undefined) ) {
111
-
112
- stored = this.get( owner, key );
113
-
114
- return stored !== undefined ?
115
- stored : this.get( owner, jQuery.camelCase(key) );
116
- }
117
-
118
- // [*]When the key is not a string, or both a key and value
119
- // are specified, set or extend (existing objects) with either:
120
- //
121
- // 1. An object of properties
122
- // 2. A key and value
123
- //
124
- this.set( owner, key, value );
125
-
126
- // Since the "set" path can have two possible entry points
127
- // return the expected data based on which path was taken[*]
128
- return value !== undefined ? value : key;
129
- },
130
- remove: function( owner, key ) {
131
- var i, name, camel,
132
- unlock = this.key( owner ),
133
- cache = this.cache[ unlock ];
134
-
135
- if ( key === undefined ) {
136
- this.cache[ unlock ] = {};
137
-
138
- } else {
139
- // Support array or space separated string of keys
140
- if ( jQuery.isArray( key ) ) {
141
- // If "name" is an array of keys...
142
- // When data is initially created, via ("key", "val") signature,
143
- // keys will be converted to camelCase.
144
- // Since there is no way to tell _how_ a key was added, remove
145
- // both plain key and camelCase key. #12786
146
- // This will only penalize the array argument path.
147
- name = key.concat( key.map( jQuery.camelCase ) );
148
- } else {
149
- camel = jQuery.camelCase( key );
150
- // Try the string as a key before any manipulation
151
- if ( key in cache ) {
152
- name = [ key, camel ];
153
- } else {
154
- // If a key with the spaces exists, use it.
155
- // Otherwise, create an array by matching non-whitespace
156
- name = camel;
157
- name = name in cache ?
158
- [ name ] : ( name.match( rnotwhite ) || [] );
159
- }
160
- }
161
-
162
- i = name.length;
163
- while ( i-- ) {
164
- delete cache[ name[ i ] ];
165
- }
166
- }
167
- },
168
- hasData: function( owner ) {
169
- return !jQuery.isEmptyObject(
170
- this.cache[ owner[ this.expando ] ] || {}
171
- );
172
- },
173
- discard: function( owner ) {
174
- if ( owner[ this.expando ] ) {
175
- delete this.cache[ owner[ this.expando ] ];
176
- }
177
- }
178
- };
179
-
180
- return Data;
181
- });
@@ -1,20 +0,0 @@
1
- define([
2
- "../core"
3
- ], function( jQuery ) {
4
-
5
- /**
6
- * Determines whether an object can have data
7
- */
8
- jQuery.acceptData = function( owner ) {
9
- // Accepts only:
10
- // - Node
11
- // - Node.ELEMENT_NODE
12
- // - Node.DOCUMENT_NODE
13
- // - Object
14
- // - Any
15
- /* jshint -W018 */
16
- return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
17
- };
18
-
19
- return jQuery.acceptData;
20
- });
@@ -1,5 +0,0 @@
1
- define([
2
- "../Data"
3
- ], function( Data ) {
4
- return new Data();
5
- });
@@ -1,5 +0,0 @@
1
- define([
2
- "../Data"
3
- ], function( Data ) {
4
- return new Data();
5
- });
@@ -1,149 +0,0 @@
1
- define([
2
- "./core",
3
- "./var/slice",
4
- "./callbacks"
5
- ], function( jQuery, slice ) {
6
-
7
- jQuery.extend({
8
-
9
- Deferred: function( func ) {
10
- var tuples = [
11
- // action, add listener, listener list, final state
12
- [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
13
- [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
14
- [ "notify", "progress", jQuery.Callbacks("memory") ]
15
- ],
16
- state = "pending",
17
- promise = {
18
- state: function() {
19
- return state;
20
- },
21
- always: function() {
22
- deferred.done( arguments ).fail( arguments );
23
- return this;
24
- },
25
- then: function( /* fnDone, fnFail, fnProgress */ ) {
26
- var fns = arguments;
27
- return jQuery.Deferred(function( newDefer ) {
28
- jQuery.each( tuples, function( i, tuple ) {
29
- var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
30
- // deferred[ done | fail | progress ] for forwarding actions to newDefer
31
- deferred[ tuple[1] ](function() {
32
- var returned = fn && fn.apply( this, arguments );
33
- if ( returned && jQuery.isFunction( returned.promise ) ) {
34
- returned.promise()
35
- .done( newDefer.resolve )
36
- .fail( newDefer.reject )
37
- .progress( newDefer.notify );
38
- } else {
39
- newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
40
- }
41
- });
42
- });
43
- fns = null;
44
- }).promise();
45
- },
46
- // Get a promise for this deferred
47
- // If obj is provided, the promise aspect is added to the object
48
- promise: function( obj ) {
49
- return obj != null ? jQuery.extend( obj, promise ) : promise;
50
- }
51
- },
52
- deferred = {};
53
-
54
- // Keep pipe for back-compat
55
- promise.pipe = promise.then;
56
-
57
- // Add list-specific methods
58
- jQuery.each( tuples, function( i, tuple ) {
59
- var list = tuple[ 2 ],
60
- stateString = tuple[ 3 ];
61
-
62
- // promise[ done | fail | progress ] = list.add
63
- promise[ tuple[1] ] = list.add;
64
-
65
- // Handle state
66
- if ( stateString ) {
67
- list.add(function() {
68
- // state = [ resolved | rejected ]
69
- state = stateString;
70
-
71
- // [ reject_list | resolve_list ].disable; progress_list.lock
72
- }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
73
- }
74
-
75
- // deferred[ resolve | reject | notify ]
76
- deferred[ tuple[0] ] = function() {
77
- deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
78
- return this;
79
- };
80
- deferred[ tuple[0] + "With" ] = list.fireWith;
81
- });
82
-
83
- // Make the deferred a promise
84
- promise.promise( deferred );
85
-
86
- // Call given func if any
87
- if ( func ) {
88
- func.call( deferred, deferred );
89
- }
90
-
91
- // All done!
92
- return deferred;
93
- },
94
-
95
- // Deferred helper
96
- when: function( subordinate /* , ..., subordinateN */ ) {
97
- var i = 0,
98
- resolveValues = slice.call( arguments ),
99
- length = resolveValues.length,
100
-
101
- // the count of uncompleted subordinates
102
- remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
103
-
104
- // the master Deferred. If resolveValues consist of only a single Deferred, just use that.
105
- deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
106
-
107
- // Update function for both resolve and progress values
108
- updateFunc = function( i, contexts, values ) {
109
- return function( value ) {
110
- contexts[ i ] = this;
111
- values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
112
- if ( values === progressValues ) {
113
- deferred.notifyWith( contexts, values );
114
- } else if ( !( --remaining ) ) {
115
- deferred.resolveWith( contexts, values );
116
- }
117
- };
118
- },
119
-
120
- progressValues, progressContexts, resolveContexts;
121
-
122
- // add listeners to Deferred subordinates; treat others as resolved
123
- if ( length > 1 ) {
124
- progressValues = new Array( length );
125
- progressContexts = new Array( length );
126
- resolveContexts = new Array( length );
127
- for ( ; i < length; i++ ) {
128
- if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
129
- resolveValues[ i ].promise()
130
- .done( updateFunc( i, resolveContexts, resolveValues ) )
131
- .fail( deferred.reject )
132
- .progress( updateFunc( i, progressContexts, progressValues ) );
133
- } else {
134
- --remaining;
135
- }
136
- }
137
- }
138
-
139
- // if we're not waiting on anything, resolve the master
140
- if ( !remaining ) {
141
- deferred.resolveWith( resolveContexts, resolveValues );
142
- }
143
-
144
- return deferred.promise();
145
- }
146
- });
147
-
148
- return jQuery;
149
- });
@@ -1,13 +0,0 @@
1
- define([
2
- "./core",
3
- "./traversing"
4
- ], function( jQuery ) {
5
-
6
- // The number of elements contained in the matched element set
7
- jQuery.fn.size = function() {
8
- return this.length;
9
- };
10
-
11
- jQuery.fn.andSelf = jQuery.fn.addBack;
12
-
13
- });
@@ -1,50 +0,0 @@
1
- define([
2
- "./core",
3
- "./core/access",
4
- "./css"
5
- ], function( jQuery, access ) {
6
-
7
- // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
8
- jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
9
- jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
10
- // margin is only for outerHeight, outerWidth
11
- jQuery.fn[ funcName ] = function( margin, value ) {
12
- var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
13
- extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
14
-
15
- return access( this, function( elem, type, value ) {
16
- var doc;
17
-
18
- if ( jQuery.isWindow( elem ) ) {
19
- // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
20
- // isn't a whole lot we can do. See pull request at this URL for discussion:
21
- // https://github.com/jquery/jquery/pull/764
22
- return elem.document.documentElement[ "client" + name ];
23
- }
24
-
25
- // Get document width or height
26
- if ( elem.nodeType === 9 ) {
27
- doc = elem.documentElement;
28
-
29
- // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
30
- // whichever is greatest
31
- return Math.max(
32
- elem.body[ "scroll" + name ], doc[ "scroll" + name ],
33
- elem.body[ "offset" + name ], doc[ "offset" + name ],
34
- doc[ "client" + name ]
35
- );
36
- }
37
-
38
- return value === undefined ?
39
- // Get width or height on the element, requesting but not forcing parseFloat
40
- jQuery.css( elem, type, extra ) :
41
-
42
- // Set width or height on the element
43
- jQuery.style( elem, type, value, extra );
44
- }, type, chainable ? margin : undefined, chainable, null );
45
- };
46
- });
47
- });
48
-
49
- return jQuery;
50
- });
@@ -1,649 +0,0 @@
1
- define([
2
- "./core",
3
- "./var/pnum",
4
- "./css/var/cssExpand",
5
- "./css/var/isHidden",
6
- "./css/defaultDisplay",
7
- "./data/var/data_priv",
8
-
9
- "./core/init",
10
- "./effects/Tween",
11
- "./queue",
12
- "./css",
13
- "./deferred",
14
- "./traversing"
15
- ], function( jQuery, pnum, cssExpand, isHidden, defaultDisplay, data_priv ) {
16
-
17
- var
18
- fxNow, timerId,
19
- rfxtypes = /^(?:toggle|show|hide)$/,
20
- rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ),
21
- rrun = /queueHooks$/,
22
- animationPrefilters = [ defaultPrefilter ],
23
- tweeners = {
24
- "*": [ function( prop, value ) {
25
- var tween = this.createTween( prop, value ),
26
- target = tween.cur(),
27
- parts = rfxnum.exec( value ),
28
- unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
29
-
30
- // Starting value computation is required for potential unit mismatches
31
- start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
32
- rfxnum.exec( jQuery.css( tween.elem, prop ) ),
33
- scale = 1,
34
- maxIterations = 20;
35
-
36
- if ( start && start[ 3 ] !== unit ) {
37
- // Trust units reported by jQuery.css
38
- unit = unit || start[ 3 ];
39
-
40
- // Make sure we update the tween properties later on
41
- parts = parts || [];
42
-
43
- // Iteratively approximate from a nonzero starting point
44
- start = +target || 1;
45
-
46
- do {
47
- // If previous iteration zeroed out, double until we get *something*
48
- // Use a string for doubling factor so we don't accidentally see scale as unchanged below
49
- scale = scale || ".5";
50
-
51
- // Adjust and apply
52
- start = start / scale;
53
- jQuery.style( tween.elem, prop, start + unit );
54
-
55
- // Update scale, tolerating zero or NaN from tween.cur()
56
- // And breaking the loop if scale is unchanged or perfect, or if we've just had enough
57
- } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
58
- }
59
-
60
- // Update tween properties
61
- if ( parts ) {
62
- start = tween.start = +start || +target || 0;
63
- tween.unit = unit;
64
- // If a +=/-= token was provided, we're doing a relative animation
65
- tween.end = parts[ 1 ] ?
66
- start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
67
- +parts[ 2 ];
68
- }
69
-
70
- return tween;
71
- } ]
72
- };
73
-
74
- // Animations created synchronously will run synchronously
75
- function createFxNow() {
76
- setTimeout(function() {
77
- fxNow = undefined;
78
- });
79
- return ( fxNow = jQuery.now() );
80
- }
81
-
82
- // Generate parameters to create a standard animation
83
- function genFx( type, includeWidth ) {
84
- var which,
85
- i = 0,
86
- attrs = { height: type };
87
-
88
- // if we include width, step value is 1 to do all cssExpand values,
89
- // if we don't include width, step value is 2 to skip over Left and Right
90
- includeWidth = includeWidth ? 1 : 0;
91
- for ( ; i < 4 ; i += 2 - includeWidth ) {
92
- which = cssExpand[ i ];
93
- attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
94
- }
95
-
96
- if ( includeWidth ) {
97
- attrs.opacity = attrs.width = type;
98
- }
99
-
100
- return attrs;
101
- }
102
-
103
- function createTween( value, prop, animation ) {
104
- var tween,
105
- collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
106
- index = 0,
107
- length = collection.length;
108
- for ( ; index < length; index++ ) {
109
- if ( (tween = collection[ index ].call( animation, prop, value )) ) {
110
-
111
- // we're done with this property
112
- return tween;
113
- }
114
- }
115
- }
116
-
117
- function defaultPrefilter( elem, props, opts ) {
118
- /* jshint validthis: true */
119
- var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
120
- anim = this,
121
- orig = {},
122
- style = elem.style,
123
- hidden = elem.nodeType && isHidden( elem ),
124
- dataShow = data_priv.get( elem, "fxshow" );
125
-
126
- // handle queue: false promises
127
- if ( !opts.queue ) {
128
- hooks = jQuery._queueHooks( elem, "fx" );
129
- if ( hooks.unqueued == null ) {
130
- hooks.unqueued = 0;
131
- oldfire = hooks.empty.fire;
132
- hooks.empty.fire = function() {
133
- if ( !hooks.unqueued ) {
134
- oldfire();
135
- }
136
- };
137
- }
138
- hooks.unqueued++;
139
-
140
- anim.always(function() {
141
- // doing this makes sure that the complete handler will be called
142
- // before this completes
143
- anim.always(function() {
144
- hooks.unqueued--;
145
- if ( !jQuery.queue( elem, "fx" ).length ) {
146
- hooks.empty.fire();
147
- }
148
- });
149
- });
150
- }
151
-
152
- // height/width overflow pass
153
- if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
154
- // Make sure that nothing sneaks out
155
- // Record all 3 overflow attributes because IE9-10 do not
156
- // change the overflow attribute when overflowX and
157
- // overflowY are set to the same value
158
- opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
159
-
160
- // Set display property to inline-block for height/width
161
- // animations on inline elements that are having width/height animated
162
- display = jQuery.css( elem, "display" );
163
-
164
- // Test default display if display is currently "none"
165
- checkDisplay = display === "none" ?
166
- data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
167
-
168
- if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
169
- style.display = "inline-block";
170
- }
171
- }
172
-
173
- if ( opts.overflow ) {
174
- style.overflow = "hidden";
175
- anim.always(function() {
176
- style.overflow = opts.overflow[ 0 ];
177
- style.overflowX = opts.overflow[ 1 ];
178
- style.overflowY = opts.overflow[ 2 ];
179
- });
180
- }
181
-
182
- // show/hide pass
183
- for ( prop in props ) {
184
- value = props[ prop ];
185
- if ( rfxtypes.exec( value ) ) {
186
- delete props[ prop ];
187
- toggle = toggle || value === "toggle";
188
- if ( value === ( hidden ? "hide" : "show" ) ) {
189
-
190
- // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden
191
- if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
192
- hidden = true;
193
- } else {
194
- continue;
195
- }
196
- }
197
- orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
198
-
199
- // Any non-fx value stops us from restoring the original display value
200
- } else {
201
- display = undefined;
202
- }
203
- }
204
-
205
- if ( !jQuery.isEmptyObject( orig ) ) {
206
- if ( dataShow ) {
207
- if ( "hidden" in dataShow ) {
208
- hidden = dataShow.hidden;
209
- }
210
- } else {
211
- dataShow = data_priv.access( elem, "fxshow", {} );
212
- }
213
-
214
- // store state if its toggle - enables .stop().toggle() to "reverse"
215
- if ( toggle ) {
216
- dataShow.hidden = !hidden;
217
- }
218
- if ( hidden ) {
219
- jQuery( elem ).show();
220
- } else {
221
- anim.done(function() {
222
- jQuery( elem ).hide();
223
- });
224
- }
225
- anim.done(function() {
226
- var prop;
227
-
228
- data_priv.remove( elem, "fxshow" );
229
- for ( prop in orig ) {
230
- jQuery.style( elem, prop, orig[ prop ] );
231
- }
232
- });
233
- for ( prop in orig ) {
234
- tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
235
-
236
- if ( !( prop in dataShow ) ) {
237
- dataShow[ prop ] = tween.start;
238
- if ( hidden ) {
239
- tween.end = tween.start;
240
- tween.start = prop === "width" || prop === "height" ? 1 : 0;
241
- }
242
- }
243
- }
244
-
245
- // If this is a noop like .hide().hide(), restore an overwritten display value
246
- } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) {
247
- style.display = display;
248
- }
249
- }
250
-
251
- function propFilter( props, specialEasing ) {
252
- var index, name, easing, value, hooks;
253
-
254
- // camelCase, specialEasing and expand cssHook pass
255
- for ( index in props ) {
256
- name = jQuery.camelCase( index );
257
- easing = specialEasing[ name ];
258
- value = props[ index ];
259
- if ( jQuery.isArray( value ) ) {
260
- easing = value[ 1 ];
261
- value = props[ index ] = value[ 0 ];
262
- }
263
-
264
- if ( index !== name ) {
265
- props[ name ] = value;
266
- delete props[ index ];
267
- }
268
-
269
- hooks = jQuery.cssHooks[ name ];
270
- if ( hooks && "expand" in hooks ) {
271
- value = hooks.expand( value );
272
- delete props[ name ];
273
-
274
- // not quite $.extend, this wont overwrite keys already present.
275
- // also - reusing 'index' from above because we have the correct "name"
276
- for ( index in value ) {
277
- if ( !( index in props ) ) {
278
- props[ index ] = value[ index ];
279
- specialEasing[ index ] = easing;
280
- }
281
- }
282
- } else {
283
- specialEasing[ name ] = easing;
284
- }
285
- }
286
- }
287
-
288
- function Animation( elem, properties, options ) {
289
- var result,
290
- stopped,
291
- index = 0,
292
- length = animationPrefilters.length,
293
- deferred = jQuery.Deferred().always( function() {
294
- // don't match elem in the :animated selector
295
- delete tick.elem;
296
- }),
297
- tick = function() {
298
- if ( stopped ) {
299
- return false;
300
- }
301
- var currentTime = fxNow || createFxNow(),
302
- remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
303
- // archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)
304
- temp = remaining / animation.duration || 0,
305
- percent = 1 - temp,
306
- index = 0,
307
- length = animation.tweens.length;
308
-
309
- for ( ; index < length ; index++ ) {
310
- animation.tweens[ index ].run( percent );
311
- }
312
-
313
- deferred.notifyWith( elem, [ animation, percent, remaining ]);
314
-
315
- if ( percent < 1 && length ) {
316
- return remaining;
317
- } else {
318
- deferred.resolveWith( elem, [ animation ] );
319
- return false;
320
- }
321
- },
322
- animation = deferred.promise({
323
- elem: elem,
324
- props: jQuery.extend( {}, properties ),
325
- opts: jQuery.extend( true, { specialEasing: {} }, options ),
326
- originalProperties: properties,
327
- originalOptions: options,
328
- startTime: fxNow || createFxNow(),
329
- duration: options.duration,
330
- tweens: [],
331
- createTween: function( prop, end ) {
332
- var tween = jQuery.Tween( elem, animation.opts, prop, end,
333
- animation.opts.specialEasing[ prop ] || animation.opts.easing );
334
- animation.tweens.push( tween );
335
- return tween;
336
- },
337
- stop: function( gotoEnd ) {
338
- var index = 0,
339
- // if we are going to the end, we want to run all the tweens
340
- // otherwise we skip this part
341
- length = gotoEnd ? animation.tweens.length : 0;
342
- if ( stopped ) {
343
- return this;
344
- }
345
- stopped = true;
346
- for ( ; index < length ; index++ ) {
347
- animation.tweens[ index ].run( 1 );
348
- }
349
-
350
- // resolve when we played the last frame
351
- // otherwise, reject
352
- if ( gotoEnd ) {
353
- deferred.resolveWith( elem, [ animation, gotoEnd ] );
354
- } else {
355
- deferred.rejectWith( elem, [ animation, gotoEnd ] );
356
- }
357
- return this;
358
- }
359
- }),
360
- props = animation.props;
361
-
362
- propFilter( props, animation.opts.specialEasing );
363
-
364
- for ( ; index < length ; index++ ) {
365
- result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
366
- if ( result ) {
367
- return result;
368
- }
369
- }
370
-
371
- jQuery.map( props, createTween, animation );
372
-
373
- if ( jQuery.isFunction( animation.opts.start ) ) {
374
- animation.opts.start.call( elem, animation );
375
- }
376
-
377
- jQuery.fx.timer(
378
- jQuery.extend( tick, {
379
- elem: elem,
380
- anim: animation,
381
- queue: animation.opts.queue
382
- })
383
- );
384
-
385
- // attach callbacks from options
386
- return animation.progress( animation.opts.progress )
387
- .done( animation.opts.done, animation.opts.complete )
388
- .fail( animation.opts.fail )
389
- .always( animation.opts.always );
390
- }
391
-
392
- jQuery.Animation = jQuery.extend( Animation, {
393
-
394
- tweener: function( props, callback ) {
395
- if ( jQuery.isFunction( props ) ) {
396
- callback = props;
397
- props = [ "*" ];
398
- } else {
399
- props = props.split(" ");
400
- }
401
-
402
- var prop,
403
- index = 0,
404
- length = props.length;
405
-
406
- for ( ; index < length ; index++ ) {
407
- prop = props[ index ];
408
- tweeners[ prop ] = tweeners[ prop ] || [];
409
- tweeners[ prop ].unshift( callback );
410
- }
411
- },
412
-
413
- prefilter: function( callback, prepend ) {
414
- if ( prepend ) {
415
- animationPrefilters.unshift( callback );
416
- } else {
417
- animationPrefilters.push( callback );
418
- }
419
- }
420
- });
421
-
422
- jQuery.speed = function( speed, easing, fn ) {
423
- var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
424
- complete: fn || !fn && easing ||
425
- jQuery.isFunction( speed ) && speed,
426
- duration: speed,
427
- easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
428
- };
429
-
430
- opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
431
- opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
432
-
433
- // normalize opt.queue - true/undefined/null -> "fx"
434
- if ( opt.queue == null || opt.queue === true ) {
435
- opt.queue = "fx";
436
- }
437
-
438
- // Queueing
439
- opt.old = opt.complete;
440
-
441
- opt.complete = function() {
442
- if ( jQuery.isFunction( opt.old ) ) {
443
- opt.old.call( this );
444
- }
445
-
446
- if ( opt.queue ) {
447
- jQuery.dequeue( this, opt.queue );
448
- }
449
- };
450
-
451
- return opt;
452
- };
453
-
454
- jQuery.fn.extend({
455
- fadeTo: function( speed, to, easing, callback ) {
456
-
457
- // show any hidden elements after setting opacity to 0
458
- return this.filter( isHidden ).css( "opacity", 0 ).show()
459
-
460
- // animate to the value specified
461
- .end().animate({ opacity: to }, speed, easing, callback );
462
- },
463
- animate: function( prop, speed, easing, callback ) {
464
- var empty = jQuery.isEmptyObject( prop ),
465
- optall = jQuery.speed( speed, easing, callback ),
466
- doAnimation = function() {
467
- // Operate on a copy of prop so per-property easing won't be lost
468
- var anim = Animation( this, jQuery.extend( {}, prop ), optall );
469
-
470
- // Empty animations, or finishing resolves immediately
471
- if ( empty || data_priv.get( this, "finish" ) ) {
472
- anim.stop( true );
473
- }
474
- };
475
- doAnimation.finish = doAnimation;
476
-
477
- return empty || optall.queue === false ?
478
- this.each( doAnimation ) :
479
- this.queue( optall.queue, doAnimation );
480
- },
481
- stop: function( type, clearQueue, gotoEnd ) {
482
- var stopQueue = function( hooks ) {
483
- var stop = hooks.stop;
484
- delete hooks.stop;
485
- stop( gotoEnd );
486
- };
487
-
488
- if ( typeof type !== "string" ) {
489
- gotoEnd = clearQueue;
490
- clearQueue = type;
491
- type = undefined;
492
- }
493
- if ( clearQueue && type !== false ) {
494
- this.queue( type || "fx", [] );
495
- }
496
-
497
- return this.each(function() {
498
- var dequeue = true,
499
- index = type != null && type + "queueHooks",
500
- timers = jQuery.timers,
501
- data = data_priv.get( this );
502
-
503
- if ( index ) {
504
- if ( data[ index ] && data[ index ].stop ) {
505
- stopQueue( data[ index ] );
506
- }
507
- } else {
508
- for ( index in data ) {
509
- if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
510
- stopQueue( data[ index ] );
511
- }
512
- }
513
- }
514
-
515
- for ( index = timers.length; index--; ) {
516
- if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
517
- timers[ index ].anim.stop( gotoEnd );
518
- dequeue = false;
519
- timers.splice( index, 1 );
520
- }
521
- }
522
-
523
- // start the next in the queue if the last step wasn't forced
524
- // timers currently will call their complete callbacks, which will dequeue
525
- // but only if they were gotoEnd
526
- if ( dequeue || !gotoEnd ) {
527
- jQuery.dequeue( this, type );
528
- }
529
- });
530
- },
531
- finish: function( type ) {
532
- if ( type !== false ) {
533
- type = type || "fx";
534
- }
535
- return this.each(function() {
536
- var index,
537
- data = data_priv.get( this ),
538
- queue = data[ type + "queue" ],
539
- hooks = data[ type + "queueHooks" ],
540
- timers = jQuery.timers,
541
- length = queue ? queue.length : 0;
542
-
543
- // enable finishing flag on private data
544
- data.finish = true;
545
-
546
- // empty the queue first
547
- jQuery.queue( this, type, [] );
548
-
549
- if ( hooks && hooks.stop ) {
550
- hooks.stop.call( this, true );
551
- }
552
-
553
- // look for any active animations, and finish them
554
- for ( index = timers.length; index--; ) {
555
- if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
556
- timers[ index ].anim.stop( true );
557
- timers.splice( index, 1 );
558
- }
559
- }
560
-
561
- // look for any animations in the old queue and finish them
562
- for ( index = 0; index < length; index++ ) {
563
- if ( queue[ index ] && queue[ index ].finish ) {
564
- queue[ index ].finish.call( this );
565
- }
566
- }
567
-
568
- // turn off finishing flag
569
- delete data.finish;
570
- });
571
- }
572
- });
573
-
574
- jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
575
- var cssFn = jQuery.fn[ name ];
576
- jQuery.fn[ name ] = function( speed, easing, callback ) {
577
- return speed == null || typeof speed === "boolean" ?
578
- cssFn.apply( this, arguments ) :
579
- this.animate( genFx( name, true ), speed, easing, callback );
580
- };
581
- });
582
-
583
- // Generate shortcuts for custom animations
584
- jQuery.each({
585
- slideDown: genFx("show"),
586
- slideUp: genFx("hide"),
587
- slideToggle: genFx("toggle"),
588
- fadeIn: { opacity: "show" },
589
- fadeOut: { opacity: "hide" },
590
- fadeToggle: { opacity: "toggle" }
591
- }, function( name, props ) {
592
- jQuery.fn[ name ] = function( speed, easing, callback ) {
593
- return this.animate( props, speed, easing, callback );
594
- };
595
- });
596
-
597
- jQuery.timers = [];
598
- jQuery.fx.tick = function() {
599
- var timer,
600
- i = 0,
601
- timers = jQuery.timers;
602
-
603
- fxNow = jQuery.now();
604
-
605
- for ( ; i < timers.length; i++ ) {
606
- timer = timers[ i ];
607
- // Checks the timer has not already been removed
608
- if ( !timer() && timers[ i ] === timer ) {
609
- timers.splice( i--, 1 );
610
- }
611
- }
612
-
613
- if ( !timers.length ) {
614
- jQuery.fx.stop();
615
- }
616
- fxNow = undefined;
617
- };
618
-
619
- jQuery.fx.timer = function( timer ) {
620
- jQuery.timers.push( timer );
621
- if ( timer() ) {
622
- jQuery.fx.start();
623
- } else {
624
- jQuery.timers.pop();
625
- }
626
- };
627
-
628
- jQuery.fx.interval = 13;
629
-
630
- jQuery.fx.start = function() {
631
- if ( !timerId ) {
632
- timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
633
- }
634
- };
635
-
636
- jQuery.fx.stop = function() {
637
- clearInterval( timerId );
638
- timerId = null;
639
- };
640
-
641
- jQuery.fx.speeds = {
642
- slow: 600,
643
- fast: 200,
644
- // Default speed
645
- _default: 400
646
- };
647
-
648
- return jQuery;
649
- });