polymer-core-rails 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (856) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/components/context-free-parser/README.md +4 -0
  3. data/app/assets/components/context-free-parser/bower.json +5 -0
  4. data/app/assets/components/context-free-parser/context-free-parser.html +49 -0
  5. data/app/assets/components/context-free-parser/context-free-parser.js +130 -0
  6. data/app/assets/components/context-free-parser/demo.html +34 -0
  7. data/app/assets/components/context-free-parser/index.html +22 -0
  8. data/app/assets/components/core-ajax/README.md +4 -0
  9. data/app/assets/components/core-ajax/bower.json +7 -0
  10. data/app/assets/components/core-ajax/{core-ajax.html.erb → core-ajax.html} +29 -23
  11. data/app/assets/components/core-ajax/{core-xhr.html.erb → core-xhr.html} +6 -3
  12. data/app/assets/components/core-ajax/demo.html +43 -0
  13. data/app/assets/components/core-ajax/index.html +22 -0
  14. data/app/assets/components/core-ajax/metadata.html +23 -0
  15. data/app/assets/components/core-animated-pages/README.md +4 -0
  16. data/app/assets/components/core-animated-pages/bower.json +10 -0
  17. data/app/assets/components/core-animated-pages/core-animated-pages.css +10 -0
  18. data/app/assets/components/core-animated-pages/{core-animated-pages.html.erb → core-animated-pages.html} +32 -9
  19. data/app/assets/components/core-animated-pages/demo.html +23 -0
  20. data/app/assets/components/core-animated-pages/demos/grid.html +113 -0
  21. data/app/assets/components/core-animated-pages/demos/list.html +126 -0
  22. data/app/assets/components/core-animated-pages/demos/music.html +182 -0
  23. data/app/assets/components/core-animated-pages/demos/nested-animated-pages.html +113 -0
  24. data/app/assets/components/core-animated-pages/demos/nested.html +112 -0
  25. data/app/assets/components/core-animated-pages/demos/news.html +255 -0
  26. data/app/assets/components/core-animated-pages/demos/quiz1-intro.png +0 -0
  27. data/app/assets/components/core-animated-pages/demos/quiz1.html +263 -0
  28. data/app/assets/components/core-animated-pages/demos/shadow.html +142 -0
  29. data/app/assets/components/core-animated-pages/demos/simple.html +98 -0
  30. data/app/assets/components/core-animated-pages/index.html +22 -0
  31. data/app/assets/components/core-animated-pages/metadata.html +38 -0
  32. data/app/assets/components/core-animated-pages/transitions/{core-transition-pages.html.erb → core-transition-pages.html} +5 -3
  33. data/app/assets/components/core-animated-pages/transitions/{cross-fade.html.erb → cross-fade.html} +1 -1
  34. data/app/assets/components/core-animated-pages/transitions/hero-transition.css +10 -0
  35. data/app/assets/components/core-animated-pages/transitions/{hero-transition.html.erb → hero-transition.html} +7 -7
  36. data/app/assets/components/core-animated-pages/transitions/slide-from-bottom.html +8 -1
  37. data/app/assets/components/core-animated-pages/transitions/slide-from-right.html +8 -0
  38. data/app/assets/components/core-animation/README.md +4 -0
  39. data/app/assets/components/core-animation/bower.json +8 -0
  40. data/app/assets/components/core-animation/{core-animation-group.html.erb → core-animation-group.html} +2 -1
  41. data/app/assets/components/core-animation/{core-animation.html.erb → core-animation.html} +4 -3
  42. data/app/assets/components/core-animation/demo.html +149 -0
  43. data/app/assets/components/core-animation/index.html +22 -0
  44. data/app/assets/components/core-animation/web-animations.html +10 -0
  45. data/app/assets/components/core-collapse/README.md +4 -0
  46. data/app/assets/components/core-collapse/bower.json +7 -0
  47. data/app/assets/components/core-collapse/{core-collapse.html.erb → core-collapse.html} +24 -9
  48. data/app/assets/components/core-collapse/demo.html +93 -0
  49. data/app/assets/components/core-collapse/index.html +22 -0
  50. data/app/assets/components/core-component-page/README.md +6 -0
  51. data/app/assets/components/core-component-page/bowager-logo.png +0 -0
  52. data/app/assets/components/core-component-page/bower.json +8 -0
  53. data/app/assets/components/core-component-page/core-component-page.html +37 -0
  54. data/app/assets/components/core-component-page/demo.html +23 -0
  55. data/app/assets/components/core-component-page/index.html +22 -0
  56. data/app/assets/components/core-doc-viewer/README.md +4 -0
  57. data/app/assets/components/core-doc-viewer/bower.json +16 -0
  58. data/app/assets/components/core-doc-viewer/core-doc-viewer.html +186 -0
  59. data/app/assets/components/core-doc-viewer/demo.html +46 -0
  60. data/app/assets/components/core-doc-viewer/elements/core-doc-page.css +139 -0
  61. data/app/assets/components/core-doc-viewer/elements/core-doc-page.html +175 -0
  62. data/app/assets/components/core-doc-viewer/elements/core-doc-toc.css +27 -0
  63. data/app/assets/components/core-doc-viewer/elements/core-doc-toc.html +67 -0
  64. data/app/assets/components/core-doc-viewer/index.html +22 -0
  65. data/app/assets/components/core-docs/README.md +4 -0
  66. data/app/assets/components/core-docs/bower.json +7 -0
  67. data/app/assets/components/core-docs/index.html +71 -0
  68. data/app/assets/components/core-drag-drop/core-drag-drop.html +12 -7
  69. data/app/assets/components/core-drag-drop/demo.html +102 -0
  70. data/app/assets/components/core-drag-drop/index.html +22 -0
  71. data/app/assets/components/core-drawer-panel/README.md +4 -0
  72. data/app/assets/components/core-drawer-panel/bower.json +8 -0
  73. data/app/assets/components/core-drawer-panel/core-drawer-panel.css +18 -33
  74. data/app/assets/components/core-drawer-panel/core-drawer-panel.html +339 -0
  75. data/app/assets/components/core-drawer-panel/demo.html +73 -0
  76. data/app/assets/components/core-drawer-panel/index.html +22 -0
  77. data/app/assets/components/core-drawer-panel/metadata.html +37 -0
  78. data/app/assets/components/core-dropdown/README.md +6 -0
  79. data/app/assets/components/core-dropdown/bower.json +11 -0
  80. data/app/assets/components/core-dropdown/core-dropdown.css +35 -0
  81. data/app/assets/components/core-dropdown/core-dropdown.html +182 -0
  82. data/app/assets/components/core-dropdown/demo.html +349 -0
  83. data/app/assets/components/core-dropdown/index.html +22 -0
  84. data/app/assets/components/core-elements/README.md +4 -0
  85. data/app/assets/components/core-elements/bower.json +47 -0
  86. data/app/assets/components/core-elements/core-elements.html +56 -0
  87. data/app/assets/components/core-elements/demo.html +107 -0
  88. data/app/assets/components/core-elements/index.html +22 -0
  89. data/app/assets/components/core-elements/metadata.html +30 -0
  90. data/app/assets/components/core-field/README.md +4 -0
  91. data/app/assets/components/core-field/bower.json +7 -0
  92. data/app/assets/components/core-field/{core-field.html.erb → core-field.html} +5 -2
  93. data/app/assets/components/core-field/demo.html +67 -0
  94. data/app/assets/components/core-field/index.html +22 -0
  95. data/app/assets/components/core-field/metadata.html +26 -0
  96. data/app/assets/components/core-header-panel/README.md +4 -0
  97. data/app/assets/components/core-header-panel/bower.json +7 -0
  98. data/app/assets/components/core-header-panel/{core-header-panel.html.erb → core-header-panel.html} +54 -25
  99. data/app/assets/components/core-header-panel/demo.html +100 -0
  100. data/app/assets/components/core-header-panel/index.html +23 -0
  101. data/app/assets/components/core-header-panel/metadata.html +37 -0
  102. data/app/assets/components/core-icon/README.md +4 -0
  103. data/app/assets/components/core-icon/bower.json +8 -0
  104. data/app/assets/components/core-icon/core-icon.css +3 -12
  105. data/app/assets/components/core-icon/core-icon.html +189 -0
  106. data/app/assets/components/core-icon/demo.html +44 -0
  107. data/app/assets/components/core-icon/index.html +22 -0
  108. data/app/assets/components/core-icon/metadata.html +21 -0
  109. data/app/assets/components/core-icon-button/README.md +4 -0
  110. data/app/assets/components/core-icon-button/bower.json +7 -0
  111. data/app/assets/components/core-icon-button/core-icon-button.css +8 -3
  112. data/app/assets/components/core-icon-button/{core-icon-button.html.erb → core-icon-button.html} +6 -8
  113. data/app/assets/components/core-icon-button/demo.html +35 -0
  114. data/app/assets/components/core-icon-button/index.html +22 -0
  115. data/app/assets/components/core-icon-button/metadata.html +20 -0
  116. data/app/assets/components/core-icons/README.md +4 -0
  117. data/app/assets/components/core-icons/av-icons.html +46 -0
  118. data/app/assets/components/core-icons/bower.json +9 -0
  119. data/app/assets/components/core-icons/communication-icons.html +59 -0
  120. data/app/assets/components/core-icons/core-icons.html +270 -6
  121. data/app/assets/components/core-icons/demo.html +96 -0
  122. data/app/assets/components/core-icons/device-icons.html +59 -0
  123. data/app/assets/components/core-icons/editor-icons.html +67 -0
  124. data/app/assets/components/core-icons/hardware-icons.html +58 -0
  125. data/app/assets/components/core-icons/iconsets/av-icons.html +45 -0
  126. data/app/assets/components/core-icons/iconsets/communication-icons.html +38 -0
  127. data/app/assets/components/core-icons/iconsets/device-icons.html +54 -0
  128. data/app/assets/components/core-icons/iconsets/hardware-icons.html +45 -0
  129. data/app/assets/components/core-icons/iconsets/icons.html +192 -0
  130. data/app/assets/components/core-icons/iconsets/image-icons.html +51 -0
  131. data/app/assets/components/core-icons/iconsets/maps-icons.html +33 -0
  132. data/app/assets/components/core-icons/iconsets/notification-icons.html +53 -0
  133. data/app/assets/components/core-icons/iconsets/png-icons.html +18 -0
  134. data/app/assets/components/core-icons/iconsets/social-icons.html +50 -0
  135. data/app/assets/components/core-icons/image-icons.html +146 -0
  136. data/app/assets/components/core-icons/index.html +22 -0
  137. data/app/assets/components/core-icons/maps-icons.html +69 -0
  138. data/app/assets/components/core-icons/notification-icons.html +50 -0
  139. data/app/assets/components/core-icons/png-icons.html +19 -0
  140. data/app/assets/components/core-icons/social-icons.html +52 -0
  141. data/app/assets/components/core-iconset/README.md +4 -0
  142. data/app/assets/components/core-iconset/bower.json +9 -0
  143. data/app/assets/components/core-iconset/{core-iconset.html.erb → core-iconset.html} +29 -24
  144. data/app/assets/components/core-iconset/demo.html +62 -0
  145. data/app/assets/components/core-iconset/index.html +22 -0
  146. data/app/assets/components/core-iconset/my-icons-big.png +0 -0
  147. data/app/assets/components/core-iconset/my-icons.png +0 -0
  148. data/app/assets/components/core-iconset-svg/README.md +4 -0
  149. data/app/assets/components/core-iconset-svg/bower.json +8 -0
  150. data/app/assets/components/core-iconset-svg/core-iconset-svg.html +14 -16
  151. data/app/assets/components/core-iconset-svg/demo.html +66 -0
  152. data/app/assets/components/core-iconset-svg/index.html +22 -0
  153. data/app/assets/components/core-iconset-svg/svg-sample-icons.html +68 -0
  154. data/app/assets/components/core-input/README.md +2 -0
  155. data/app/assets/components/core-input/bower.json +6 -0
  156. data/app/assets/components/core-input/core-input.css +10 -0
  157. data/app/assets/components/core-input/core-input.html +454 -0
  158. data/app/assets/components/core-input/demo.html +142 -0
  159. data/app/assets/components/core-input/index.html +22 -0
  160. data/app/assets/components/core-input/metadata.html +20 -0
  161. data/app/assets/components/core-item/README.md +4 -0
  162. data/app/assets/components/core-item/bower.json +8 -0
  163. data/app/assets/components/core-item/core-item.css +13 -0
  164. data/app/assets/components/core-item/{core-item.html.erb → core-item.html} +10 -16
  165. data/app/assets/components/core-item/demo.html +92 -0
  166. data/app/assets/components/core-item/index.html +22 -0
  167. data/app/assets/components/core-item/metadata.html +24 -0
  168. data/app/assets/components/core-layout-grid/README.md +4 -0
  169. data/app/assets/components/core-layout-grid/bower.json +7 -0
  170. data/app/assets/components/core-layout-grid/core-layout-grid.html +350 -0
  171. data/app/assets/components/core-layout-grid/demo.html +116 -0
  172. data/app/assets/components/core-layout-grid/index.html +22 -0
  173. data/app/assets/components/core-layout-grid/metadata.html +22 -0
  174. data/app/assets/components/core-layout-trbl/README.md +4 -0
  175. data/app/assets/components/core-layout-trbl/bower.json +7 -0
  176. data/app/assets/components/core-layout-trbl/core-layout-trbl.html +269 -0
  177. data/app/assets/components/core-layout-trbl/core-slide.html +181 -0
  178. data/app/assets/components/core-layout-trbl/demo.html +58 -0
  179. data/app/assets/components/core-layout-trbl/index.html +22 -0
  180. data/app/assets/components/core-list/README.md +4 -0
  181. data/app/assets/components/core-list/bower.json +8 -0
  182. data/app/assets/components/core-list/core-list.css +18 -4
  183. data/app/assets/components/core-list/{core-list.html.erb → core-list.html} +27 -27
  184. data/app/assets/components/core-list/demo-divider.html +178 -0
  185. data/app/assets/components/core-list/demo.html +154 -0
  186. data/app/assets/components/core-list/images/0.png +0 -0
  187. data/app/assets/components/core-list/images/1.png +0 -0
  188. data/app/assets/components/core-list/images/2.png +0 -0
  189. data/app/assets/components/core-list/images/3.png +0 -0
  190. data/app/assets/components/core-list/index.html +22 -0
  191. data/app/assets/components/core-localstorage/README.md +4 -0
  192. data/app/assets/components/core-localstorage/bower.json +7 -0
  193. data/app/assets/components/core-localstorage/core-localstorage.html +13 -11
  194. data/app/assets/components/core-localstorage/demo.html +50 -0
  195. data/app/assets/components/core-localstorage/index.html +22 -0
  196. data/app/assets/components/core-media-query/README.md +4 -0
  197. data/app/assets/components/core-media-query/bower.json +7 -0
  198. data/app/assets/components/core-media-query/core-media-query.html +1 -0
  199. data/app/assets/components/core-media-query/demo.html +44 -0
  200. data/app/assets/components/core-media-query/index.html +22 -0
  201. data/app/assets/components/core-menu/README.md +4 -0
  202. data/app/assets/components/core-menu/bower.json +9 -0
  203. data/app/assets/components/core-menu/{core-menu.html.erb → core-menu.html} +3 -3
  204. data/app/assets/components/core-menu/{core-submenu.html.erb → core-submenu.html} +10 -10
  205. data/app/assets/components/core-menu/demo.html +101 -0
  206. data/app/assets/components/core-menu/index.html +22 -0
  207. data/app/assets/components/core-menu/metadata.html +62 -0
  208. data/app/assets/components/core-menu-button/README.md +2 -0
  209. data/app/assets/components/core-menu-button/bower.json +11 -0
  210. data/app/assets/components/core-menu-button/core-menu-button.html +118 -0
  211. data/app/assets/components/core-menu-button/demo.html +98 -0
  212. data/app/assets/components/core-menu-button/index.html +22 -0
  213. data/app/assets/components/core-menu-button/metadata.html +26 -0
  214. data/app/assets/components/core-meta/README.md +4 -0
  215. data/app/assets/components/core-meta/bower.json +7 -0
  216. data/app/assets/components/core-meta/core-meta.html +24 -22
  217. data/app/assets/components/core-meta/demo.html +58 -0
  218. data/app/assets/components/core-meta/index.html +22 -0
  219. data/app/assets/components/core-overlay/README.md +4 -0
  220. data/app/assets/components/core-overlay/bower.json +8 -0
  221. data/app/assets/components/core-overlay/core-key-helper.html +2 -0
  222. data/app/assets/components/core-overlay/{core-overlay.html.erb → core-overlay.html} +77 -51
  223. data/app/assets/components/core-overlay/demo.html +155 -0
  224. data/app/assets/components/core-overlay/index.html +22 -0
  225. data/app/assets/components/core-pages/README.md +4 -0
  226. data/app/assets/components/core-pages/bower.json +7 -0
  227. data/app/assets/components/core-pages/{core-pages.html.erb → core-pages.html} +5 -4
  228. data/app/assets/components/core-pages/demo.html +136 -0
  229. data/app/assets/components/core-pages/index.html +22 -0
  230. data/app/assets/components/core-pages/metadata.html +25 -0
  231. data/app/assets/components/core-popup-menu/README.md +6 -0
  232. data/app/assets/components/core-popup-menu/bower.json +13 -0
  233. data/app/assets/components/core-popup-menu/core-popup-menu.css +28 -0
  234. data/app/assets/components/core-popup-menu/core-popup-menu.html +198 -0
  235. data/app/assets/components/core-popup-menu/core-popup-overlay.html +111 -0
  236. data/app/assets/components/core-popup-menu/demo.html +542 -0
  237. data/app/assets/components/core-popup-menu/index.html +22 -0
  238. data/app/assets/components/core-popup-menu/metadata.html +62 -0
  239. data/app/assets/components/core-range/README.md +2 -0
  240. data/app/assets/components/core-range/bower.json +7 -0
  241. data/app/assets/components/core-range/core-range.html +16 -15
  242. data/app/assets/components/core-range/demo.html +64 -0
  243. data/app/assets/components/core-range/index.html +22 -0
  244. data/app/assets/components/core-scaffold/README.md +4 -0
  245. data/app/assets/components/core-scaffold/bower.json +10 -0
  246. data/app/assets/components/core-scaffold/{core-scaffold.html.erb → core-scaffold.html} +35 -25
  247. data/app/assets/components/core-scaffold/demo.html +82 -0
  248. data/app/assets/components/core-scaffold/index.html +22 -0
  249. data/app/assets/components/core-scaffold/metadata.html +52 -0
  250. data/app/assets/components/core-scroll-header-panel/README.md +4 -0
  251. data/app/assets/components/core-scroll-header-panel/bower.json +11 -0
  252. data/app/assets/components/core-scroll-header-panel/core-scroll-header-panel.css +1 -0
  253. data/app/assets/components/core-scroll-header-panel/{core-scroll-header-panel.html.erb → core-scroll-header-panel.html} +132 -76
  254. data/app/assets/components/core-scroll-header-panel/demo.html +111 -0
  255. data/app/assets/components/core-scroll-header-panel/demos/demo1.html +80 -0
  256. data/app/assets/components/core-scroll-header-panel/demos/demo2.html +82 -0
  257. data/app/assets/components/core-scroll-header-panel/demos/demo3.html +81 -0
  258. data/app/assets/components/core-scroll-header-panel/demos/demo4.html +109 -0
  259. data/app/assets/components/core-scroll-header-panel/demos/demo5.html +109 -0
  260. data/app/assets/components/core-scroll-header-panel/demos/demo6.html +113 -0
  261. data/app/assets/components/core-scroll-header-panel/demos/demo7.html +120 -0
  262. data/app/assets/components/core-scroll-header-panel/demos/demo8.html +122 -0
  263. data/app/assets/components/core-scroll-header-panel/demos/demo9.html +100 -0
  264. data/app/assets/components/core-scroll-header-panel/demos/images/bg2.jpg +0 -0
  265. data/app/assets/components/core-scroll-header-panel/demos/images/bg3.jpg +0 -0
  266. data/app/assets/components/core-scroll-header-panel/demos/images/bg5.jpg +0 -0
  267. data/app/assets/components/core-scroll-header-panel/demos/images/bg6.jpg +0 -0
  268. data/app/assets/components/core-scroll-header-panel/demos/images/bg9.jpg +0 -0
  269. data/app/assets/components/core-scroll-header-panel/demos/lorem-ipsum.html +42 -0
  270. data/app/assets/components/core-scroll-header-panel/index.html +22 -0
  271. data/app/assets/components/core-scroll-header-panel/metadata.html +41 -0
  272. data/app/assets/components/core-selection/README.md +4 -0
  273. data/app/assets/components/core-selection/bower.json +7 -0
  274. data/app/assets/components/core-selection/core-selection.html +6 -5
  275. data/app/assets/components/core-selection/demo.html +59 -0
  276. data/app/assets/components/core-selection/index.html +22 -0
  277. data/app/assets/components/core-selector/README.md +4 -0
  278. data/app/assets/components/core-selector/bower.json +8 -0
  279. data/app/assets/components/core-selector/{core-selector.html.erb → core-selector.html} +53 -16
  280. data/app/assets/components/core-selector/demo.html +106 -0
  281. data/app/assets/components/core-selector/index.html +22 -0
  282. data/app/assets/components/core-selector/metadata.html +20 -0
  283. data/app/assets/components/core-shared-lib/README.md +4 -0
  284. data/app/assets/components/core-shared-lib/bower.json +7 -0
  285. data/app/assets/components/core-shared-lib/core-shared-lib.html +21 -20
  286. data/app/assets/components/core-shared-lib/demo.html +33 -0
  287. data/app/assets/components/core-shared-lib/index.html +22 -0
  288. data/app/assets/components/core-signals/README.md +4 -0
  289. data/app/assets/components/core-signals/bower.json +7 -0
  290. data/app/assets/components/core-signals/core-signals.html +7 -6
  291. data/app/assets/components/core-signals/demo.html +53 -0
  292. data/app/assets/components/core-signals/index.html +22 -0
  293. data/app/assets/components/core-splitter/README.md +4 -0
  294. data/app/assets/components/core-splitter/bower.json +7 -0
  295. data/app/assets/components/core-splitter/{core-splitter.css.erb → core-splitter.css} +2 -2
  296. data/app/assets/components/core-splitter/{core-splitter.html.erb → core-splitter.html} +13 -25
  297. data/app/assets/components/core-splitter/demo.html +80 -0
  298. data/app/assets/components/core-splitter/index.html +22 -0
  299. data/app/assets/components/core-style/README.md +4 -0
  300. data/app/assets/components/core-style/bower.json +7 -0
  301. data/app/assets/components/core-style/core-style.html +19 -17
  302. data/app/assets/components/core-style/demo.html +58 -0
  303. data/app/assets/components/core-style/elements.html +55 -0
  304. data/app/assets/components/core-style/index.html +22 -0
  305. data/app/assets/components/core-style/my-theme.html +73 -0
  306. data/app/assets/components/core-tests/README.md +4 -0
  307. data/app/assets/components/core-tests/bower.json +7 -0
  308. data/app/assets/components/core-tests/runner.html +29 -0
  309. data/app/assets/components/core-tests/tests/core-ajax.html +49 -0
  310. data/app/assets/components/core-tests/tests/core-collapse.html +68 -0
  311. data/app/assets/components/core-tests/tests/core-localstorage.html +38 -0
  312. data/app/assets/components/core-tests/tests/core-selection-multi.html +55 -0
  313. data/app/assets/components/core-tests/tests/core-selection.html +54 -0
  314. data/app/assets/components/core-tests/tests/core-selector-activate-event.html +50 -0
  315. data/app/assets/components/core-tests/tests/core-selector-basic.html +105 -0
  316. data/app/assets/components/core-tests/tests/core-selector-multi.html +86 -0
  317. data/app/assets/components/core-tests/tests/core-shared-lib.html +48 -0
  318. data/app/assets/components/core-tests/tests/tests.html +46 -0
  319. data/app/assets/components/core-toolbar/README.md +4 -0
  320. data/app/assets/components/core-toolbar/bower.json +7 -0
  321. data/app/assets/components/core-toolbar/core-toolbar.css +1 -17
  322. data/app/assets/components/core-toolbar/{core-toolbar.html.erb → core-toolbar.html} +6 -5
  323. data/app/assets/components/core-toolbar/demo.html +107 -0
  324. data/app/assets/components/core-toolbar/index.html +22 -0
  325. data/app/assets/components/core-toolbar/metadata.html +28 -0
  326. data/app/assets/components/core-tooltip/README.md +4 -0
  327. data/app/assets/components/core-tooltip/bower.json +7 -0
  328. data/app/assets/components/core-tooltip/core-tooltip.css +2 -2
  329. data/app/assets/components/core-tooltip/{core-tooltip.html.erb → core-tooltip.html} +3 -3
  330. data/app/assets/components/core-tooltip/demo.html +176 -0
  331. data/app/assets/components/core-tooltip/index.html +23 -0
  332. data/app/assets/components/core-tooltip/metadata.html +18 -0
  333. data/app/assets/components/core-transition/README.md +2 -0
  334. data/app/assets/components/core-transition/bower.json +8 -0
  335. data/app/assets/components/core-transition/core-transition-css.html +221 -0
  336. data/app/assets/components/core-transition/core-transition.html +140 -0
  337. data/app/assets/components/core-transition/demo.html +87 -0
  338. data/app/assets/components/core-transition/index.html +22 -0
  339. data/app/assets/components/google-code-prettify/CHANGES.html +172 -0
  340. data/app/assets/components/google-code-prettify/COPYING +191 -0
  341. data/app/assets/components/google-code-prettify/README-zh-Hans.html +143 -0
  342. data/app/assets/components/google-code-prettify/README.html +233 -0
  343. data/app/assets/components/google-code-prettify/README.md +54 -0
  344. data/app/assets/components/google-code-prettify/bin/prettify.min.css +1 -0
  345. data/app/assets/components/google-code-prettify/bin/prettify.min.js +30 -0
  346. data/app/assets/components/google-code-prettify/bin/run_prettify.min.js +34 -0
  347. data/app/assets/components/google-code-prettify/bower.json +16 -0
  348. data/app/assets/components/google-code-prettify/examples/quine.html +55 -0
  349. data/app/assets/components/google-code-prettify/src/lang-apollo.js +51 -0
  350. data/app/assets/components/google-code-prettify/src/lang-basic.js +32 -0
  351. data/app/assets/components/google-code-prettify/src/lang-clj.js +64 -0
  352. data/app/assets/components/google-code-prettify/src/lang-css.js +159 -0
  353. data/app/assets/components/google-code-prettify/src/lang-dart.js +88 -0
  354. data/app/assets/components/google-code-prettify/src/lang-erlang.js +92 -0
  355. data/app/assets/components/google-code-prettify/src/lang-go.js +58 -0
  356. data/app/assets/components/google-code-prettify/src/lang-hs.js +101 -0
  357. data/app/assets/components/google-code-prettify/src/lang-lisp.js +94 -0
  358. data/app/assets/components/google-code-prettify/src/lang-llvm.js +61 -0
  359. data/app/assets/components/google-code-prettify/src/lang-lua.js +59 -0
  360. data/app/assets/components/google-code-prettify/src/lang-matlab.js +180 -0
  361. data/app/assets/components/google-code-prettify/src/lang-ml.js +56 -0
  362. data/app/assets/components/google-code-prettify/src/lang-mumps.js +139 -0
  363. data/app/assets/components/google-code-prettify/src/lang-n.js +65 -0
  364. data/app/assets/components/google-code-prettify/src/lang-pascal.js +32 -0
  365. data/app/assets/components/google-code-prettify/src/lang-proto.js +35 -0
  366. data/app/assets/components/google-code-prettify/src/lang-r.js +57 -0
  367. data/app/assets/components/google-code-prettify/src/lang-rd.js +47 -0
  368. data/app/assets/components/google-code-prettify/src/lang-scala.js +54 -0
  369. data/app/assets/components/google-code-prettify/src/lang-sql.js +58 -0
  370. data/app/assets/components/google-code-prettify/src/lang-tcl.js +62 -0
  371. data/app/assets/components/google-code-prettify/src/lang-tex.js +46 -0
  372. data/app/assets/components/google-code-prettify/src/lang-vb.js +66 -0
  373. data/app/assets/components/google-code-prettify/src/lang-vhdl.js +34 -0
  374. data/app/assets/components/google-code-prettify/src/lang-wiki.js +53 -0
  375. data/app/assets/components/google-code-prettify/src/lang-xq.js +67 -0
  376. data/app/assets/components/google-code-prettify/src/lang-yaml.js +27 -0
  377. data/app/assets/components/google-code-prettify/src/prettify.css +52 -0
  378. data/app/assets/components/google-code-prettify/src/prettify.js +1597 -0
  379. data/app/assets/components/google-code-prettify/src/run_prettify.js +1905 -0
  380. data/app/assets/components/google-code-prettify/styles/demo.html +61 -0
  381. data/app/assets/components/google-code-prettify/styles/desert.css +34 -0
  382. data/app/assets/components/google-code-prettify/styles/doxy.css +64 -0
  383. data/app/assets/components/google-code-prettify/styles/index.html +89 -0
  384. data/app/assets/components/google-code-prettify/styles/sons-of-obsidian.css +118 -0
  385. data/app/assets/components/google-code-prettify/styles/sunburst.css +51 -0
  386. data/app/assets/components/marked/LICENSE +19 -0
  387. data/app/assets/components/marked/Makefile +12 -0
  388. data/app/assets/components/marked/README.md +386 -0
  389. data/app/assets/components/marked/bin/marked +187 -0
  390. data/app/assets/components/marked/component.json +10 -0
  391. data/app/assets/components/marked/doc/broken.md +426 -0
  392. data/app/assets/components/marked/doc/todo.md +2 -0
  393. data/app/assets/components/marked/index.js +1 -0
  394. data/app/assets/components/marked/lib/marked.js +1266 -0
  395. data/app/assets/components/marked/man/marked.1 +88 -0
  396. data/app/assets/components/marked/package.json +22 -0
  397. data/app/assets/components/marked/test/README +10 -0
  398. data/app/assets/components/marked/test/browser/index.html +5 -0
  399. data/app/assets/components/marked/test/browser/index.js +41 -0
  400. data/app/assets/components/marked/test/browser/test.js +62 -0
  401. data/app/assets/components/marked/test/index.js +543 -0
  402. data/app/assets/components/marked/test/new/autolink_lines.html +3 -0
  403. data/app/assets/components/marked/test/new/autolink_lines.text +2 -0
  404. data/app/assets/components/marked/test/new/blockquote_list_item.html +3 -0
  405. data/app/assets/components/marked/test/new/blockquote_list_item.text +4 -0
  406. data/app/assets/components/marked/test/new/case_insensitive_refs.html +1 -0
  407. data/app/assets/components/marked/test/new/case_insensitive_refs.text +3 -0
  408. data/app/assets/components/marked/test/new/def_blocks.html +28 -0
  409. data/app/assets/components/marked/test/new/def_blocks.text +21 -0
  410. data/app/assets/components/marked/test/new/double_link.html +5 -0
  411. data/app/assets/components/marked/test/new/double_link.text +5 -0
  412. data/app/assets/components/marked/test/new/escaped_angles.html +1 -0
  413. data/app/assets/components/marked/test/new/escaped_angles.text +1 -0
  414. data/app/assets/components/marked/test/new/gfm_break.breaks.html +1 -0
  415. data/app/assets/components/marked/test/new/gfm_break.breaks.text +3 -0
  416. data/app/assets/components/marked/test/new/gfm_code.html +5 -0
  417. data/app/assets/components/marked/test/new/gfm_code.text +16 -0
  418. data/app/assets/components/marked/test/new/gfm_code_hr_list.html +52 -0
  419. data/app/assets/components/marked/test/new/gfm_code_hr_list.text +53 -0
  420. data/app/assets/components/marked/test/new/gfm_del.html +1 -0
  421. data/app/assets/components/marked/test/new/gfm_del.text +1 -0
  422. data/app/assets/components/marked/test/new/gfm_em.html +1 -0
  423. data/app/assets/components/marked/test/new/gfm_em.text +1 -0
  424. data/app/assets/components/marked/test/new/gfm_links.html +2 -0
  425. data/app/assets/components/marked/test/new/gfm_links.text +1 -0
  426. data/app/assets/components/marked/test/new/gfm_tables.html +37 -0
  427. data/app/assets/components/marked/test/new/gfm_tables.text +21 -0
  428. data/app/assets/components/marked/test/new/hr_list_break.html +10 -0
  429. data/app/assets/components/marked/test/new/hr_list_break.text +6 -0
  430. data/app/assets/components/marked/test/new/lazy_blockquotes.html +4 -0
  431. data/app/assets/components/marked/test/new/lazy_blockquotes.text +2 -0
  432. data/app/assets/components/marked/test/new/list_item_text.html +1 -0
  433. data/app/assets/components/marked/test/new/list_item_text.text +5 -0
  434. data/app/assets/components/marked/test/new/loose_lists.html +62 -0
  435. data/app/assets/components/marked/test/new/loose_lists.text +59 -0
  436. data/app/assets/components/marked/test/new/main.html +4 -0
  437. data/app/assets/components/marked/test/new/main.text +55 -0
  438. data/app/assets/components/marked/test/new/nested_code.html +1 -0
  439. data/app/assets/components/marked/test/new/nested_code.text +1 -0
  440. data/app/assets/components/marked/test/new/nested_em.html +3 -0
  441. data/app/assets/components/marked/test/new/nested_em.text +3 -0
  442. data/app/assets/components/marked/test/new/nested_square_link.html +1 -0
  443. data/app/assets/components/marked/test/new/nested_square_link.text +1 -0
  444. data/app/assets/components/marked/test/new/not_a_link.html +1 -0
  445. data/app/assets/components/marked/test/new/not_a_link.text +1 -0
  446. data/app/assets/components/marked/test/new/ref_paren.html +1 -0
  447. data/app/assets/components/marked/test/new/ref_paren.text +3 -0
  448. data/app/assets/components/marked/test/new/same_bullet.html +5 -0
  449. data/app/assets/components/marked/test/new/same_bullet.text +3 -0
  450. data/app/assets/components/marked/test/new/text.smartypants.html +6 -0
  451. data/app/assets/components/marked/test/new/text.smartypants.text +6 -0
  452. data/app/assets/components/marked/test/new/toplevel_paragraphs.gfm.html +34 -0
  453. data/app/assets/components/marked/test/new/toplevel_paragraphs.gfm.text +37 -0
  454. data/app/assets/components/marked/test/new/tricky_list.html +23 -0
  455. data/app/assets/components/marked/test/new/tricky_list.text +15 -0
  456. data/app/assets/components/marked/test/original/amps_and_angles_encoding.html +17 -0
  457. data/app/assets/components/marked/test/original/amps_and_angles_encoding.text +21 -0
  458. data/app/assets/components/marked/test/original/auto_links.html +18 -0
  459. data/app/assets/components/marked/test/original/auto_links.text +13 -0
  460. data/app/assets/components/marked/test/original/backslash_escapes.html +118 -0
  461. data/app/assets/components/marked/test/original/backslash_escapes.text +120 -0
  462. data/app/assets/components/marked/test/original/blockquotes_with_code_blocks.html +15 -0
  463. data/app/assets/components/marked/test/original/blockquotes_with_code_blocks.text +11 -0
  464. data/app/assets/components/marked/test/original/code_blocks.html +18 -0
  465. data/app/assets/components/marked/test/original/code_blocks.text +14 -0
  466. data/app/assets/components/marked/test/original/code_spans.html +6 -0
  467. data/app/assets/components/marked/test/original/code_spans.text +6 -0
  468. data/app/assets/components/marked/test/original/hard_wrapped_paragraphs_with_list_like_lines.html +8 -0
  469. data/app/assets/components/marked/test/original/hard_wrapped_paragraphs_with_list_like_lines.text +8 -0
  470. data/app/assets/components/marked/test/original/horizontal_rules.html +71 -0
  471. data/app/assets/components/marked/test/original/horizontal_rules.text +67 -0
  472. data/app/assets/components/marked/test/original/inline_html_advanced.html +15 -0
  473. data/app/assets/components/marked/test/original/inline_html_advanced.text +15 -0
  474. data/app/assets/components/marked/test/original/inline_html_comments.html +13 -0
  475. data/app/assets/components/marked/test/original/inline_html_comments.text +13 -0
  476. data/app/assets/components/marked/test/original/inline_html_simple.html +72 -0
  477. data/app/assets/components/marked/test/original/inline_html_simple.text +69 -0
  478. data/app/assets/components/marked/test/original/links_inline_style.html +15 -0
  479. data/app/assets/components/marked/test/original/links_inline_style.text +15 -0
  480. data/app/assets/components/marked/test/original/links_reference_style.html +52 -0
  481. data/app/assets/components/marked/test/original/links_reference_style.text +71 -0
  482. data/app/assets/components/marked/test/original/links_shortcut_references.html +9 -0
  483. data/app/assets/components/marked/test/original/links_shortcut_references.text +20 -0
  484. data/app/assets/components/marked/test/original/literal_quotes_in_titles.html +3 -0
  485. data/app/assets/components/marked/test/original/literal_quotes_in_titles.text +7 -0
  486. data/app/assets/components/marked/test/original/markdown_documentation_basics.html +314 -0
  487. data/app/assets/components/marked/test/original/markdown_documentation_basics.text +306 -0
  488. data/app/assets/components/marked/test/original/markdown_documentation_syntax.html +942 -0
  489. data/app/assets/components/marked/test/original/markdown_documentation_syntax.text +888 -0
  490. data/app/assets/components/marked/test/original/nested_blockquotes.html +9 -0
  491. data/app/assets/components/marked/test/original/nested_blockquotes.text +5 -0
  492. data/app/assets/components/marked/test/original/ordered_and_unordered_lists.html +148 -0
  493. data/app/assets/components/marked/test/original/ordered_and_unordered_lists.text +131 -0
  494. data/app/assets/components/marked/test/original/strong_and_em_together.html +7 -0
  495. data/app/assets/components/marked/test/original/strong_and_em_together.text +7 -0
  496. data/app/assets/components/marked/test/original/tabs.html +25 -0
  497. data/app/assets/components/marked/test/original/tabs.text +21 -0
  498. data/app/assets/components/marked/test/original/tidyness.html +8 -0
  499. data/app/assets/components/marked/test/original/tidyness.text +5 -0
  500. data/app/assets/components/marked/test/tests/amps_and_angles_encoding.html +17 -0
  501. data/app/assets/components/marked/test/tests/amps_and_angles_encoding.text +21 -0
  502. data/app/assets/components/marked/test/tests/auto_links.html +18 -0
  503. data/app/assets/components/marked/test/tests/auto_links.text +13 -0
  504. data/app/assets/components/marked/test/tests/autolink_lines.html +3 -0
  505. data/app/assets/components/marked/test/tests/autolink_lines.text +2 -0
  506. data/app/assets/components/marked/test/tests/backslash_escapes.html +118 -0
  507. data/app/assets/components/marked/test/tests/backslash_escapes.text +120 -0
  508. data/app/assets/components/marked/test/tests/blockquote_list_item.html +3 -0
  509. data/app/assets/components/marked/test/tests/blockquote_list_item.text +4 -0
  510. data/app/assets/components/marked/test/tests/blockquotes_with_code_blocks.html +15 -0
  511. data/app/assets/components/marked/test/tests/blockquotes_with_code_blocks.text +11 -0
  512. data/app/assets/components/marked/test/tests/case_insensitive_refs.html +1 -0
  513. data/app/assets/components/marked/test/tests/case_insensitive_refs.text +3 -0
  514. data/app/assets/components/marked/test/tests/code_blocks.html +18 -0
  515. data/app/assets/components/marked/test/tests/code_blocks.text +14 -0
  516. data/app/assets/components/marked/test/tests/code_spans.html +6 -0
  517. data/app/assets/components/marked/test/tests/code_spans.text +6 -0
  518. data/app/assets/components/marked/test/tests/def_blocks.html +28 -0
  519. data/app/assets/components/marked/test/tests/def_blocks.text +21 -0
  520. data/app/assets/components/marked/test/tests/double_link.html +5 -0
  521. data/app/assets/components/marked/test/tests/double_link.text +5 -0
  522. data/app/assets/components/marked/test/tests/escaped_angles.html +1 -0
  523. data/app/assets/components/marked/test/tests/escaped_angles.text +1 -0
  524. data/app/assets/components/marked/test/tests/gfm_break.breaks.html +1 -0
  525. data/app/assets/components/marked/test/tests/gfm_break.breaks.text +3 -0
  526. data/app/assets/components/marked/test/tests/gfm_code.html +5 -0
  527. data/app/assets/components/marked/test/tests/gfm_code.text +16 -0
  528. data/app/assets/components/marked/test/tests/gfm_code_hr_list.html +52 -0
  529. data/app/assets/components/marked/test/tests/gfm_code_hr_list.text +53 -0
  530. data/app/assets/components/marked/test/tests/gfm_del.html +1 -0
  531. data/app/assets/components/marked/test/tests/gfm_del.text +1 -0
  532. data/app/assets/components/marked/test/tests/gfm_em.html +1 -0
  533. data/app/assets/components/marked/test/tests/gfm_em.text +1 -0
  534. data/app/assets/components/marked/test/tests/gfm_links.html +2 -0
  535. data/app/assets/components/marked/test/tests/gfm_links.text +1 -0
  536. data/app/assets/components/marked/test/tests/gfm_tables.html +37 -0
  537. data/app/assets/components/marked/test/tests/gfm_tables.text +21 -0
  538. data/app/assets/components/marked/test/tests/hard_wrapped_paragraphs_with_list_like_lines.nogfm.html +8 -0
  539. data/app/assets/components/marked/test/tests/hard_wrapped_paragraphs_with_list_like_lines.nogfm.text +8 -0
  540. data/app/assets/components/marked/test/tests/horizontal_rules.html +71 -0
  541. data/app/assets/components/marked/test/tests/horizontal_rules.text +67 -0
  542. data/app/assets/components/marked/test/tests/hr_list_break.html +10 -0
  543. data/app/assets/components/marked/test/tests/hr_list_break.text +6 -0
  544. data/app/assets/components/marked/test/tests/inline_html_advanced.html +15 -0
  545. data/app/assets/components/marked/test/tests/inline_html_advanced.text +15 -0
  546. data/app/assets/components/marked/test/tests/inline_html_comments.html +13 -0
  547. data/app/assets/components/marked/test/tests/inline_html_comments.text +13 -0
  548. data/app/assets/components/marked/test/tests/inline_html_simple.html +72 -0
  549. data/app/assets/components/marked/test/tests/inline_html_simple.text +69 -0
  550. data/app/assets/components/marked/test/tests/lazy_blockquotes.html +4 -0
  551. data/app/assets/components/marked/test/tests/lazy_blockquotes.text +2 -0
  552. data/app/assets/components/marked/test/tests/links_inline_style.html +15 -0
  553. data/app/assets/components/marked/test/tests/links_inline_style.text +15 -0
  554. data/app/assets/components/marked/test/tests/links_reference_style.html +52 -0
  555. data/app/assets/components/marked/test/tests/links_reference_style.text +71 -0
  556. data/app/assets/components/marked/test/tests/links_shortcut_references.html +9 -0
  557. data/app/assets/components/marked/test/tests/links_shortcut_references.text +20 -0
  558. data/app/assets/components/marked/test/tests/list_item_text.html +1 -0
  559. data/app/assets/components/marked/test/tests/list_item_text.text +5 -0
  560. data/app/assets/components/marked/test/tests/literal_quotes_in_titles.html +3 -0
  561. data/app/assets/components/marked/test/tests/literal_quotes_in_titles.text +7 -0
  562. data/app/assets/components/marked/test/tests/loose_lists.html +62 -0
  563. data/app/assets/components/marked/test/tests/loose_lists.text +59 -0
  564. data/app/assets/components/marked/test/tests/main.html +4 -0
  565. data/app/assets/components/marked/test/tests/main.text +55 -0
  566. data/app/assets/components/marked/test/tests/markdown_documentation_basics.html +314 -0
  567. data/app/assets/components/marked/test/tests/markdown_documentation_basics.text +306 -0
  568. data/app/assets/components/marked/test/tests/markdown_documentation_syntax.html +942 -0
  569. data/app/assets/components/marked/test/tests/markdown_documentation_syntax.text +888 -0
  570. data/app/assets/components/marked/test/tests/nested_blockquotes.html +9 -0
  571. data/app/assets/components/marked/test/tests/nested_blockquotes.text +5 -0
  572. data/app/assets/components/marked/test/tests/nested_code.html +1 -0
  573. data/app/assets/components/marked/test/tests/nested_code.text +1 -0
  574. data/app/assets/components/marked/test/tests/nested_em.html +3 -0
  575. data/app/assets/components/marked/test/tests/nested_em.text +3 -0
  576. data/app/assets/components/marked/test/tests/nested_square_link.html +1 -0
  577. data/app/assets/components/marked/test/tests/nested_square_link.text +1 -0
  578. data/app/assets/components/marked/test/tests/not_a_link.html +1 -0
  579. data/app/assets/components/marked/test/tests/not_a_link.text +1 -0
  580. data/app/assets/components/marked/test/tests/ordered_and_unordered_lists.html +148 -0
  581. data/app/assets/components/marked/test/tests/ordered_and_unordered_lists.text +131 -0
  582. data/app/assets/components/marked/test/tests/ref_paren.html +1 -0
  583. data/app/assets/components/marked/test/tests/ref_paren.text +3 -0
  584. data/app/assets/components/marked/test/tests/same_bullet.html +5 -0
  585. data/app/assets/components/marked/test/tests/same_bullet.text +3 -0
  586. data/app/assets/components/marked/test/tests/strong_and_em_together.html +7 -0
  587. data/app/assets/components/marked/test/tests/strong_and_em_together.text +7 -0
  588. data/app/assets/components/marked/test/tests/tabs.html +25 -0
  589. data/app/assets/components/marked/test/tests/tabs.text +21 -0
  590. data/app/assets/components/marked/test/tests/text.smartypants.html +6 -0
  591. data/app/assets/components/marked/test/tests/text.smartypants.text +6 -0
  592. data/app/assets/components/marked/test/tests/tidyness.html +8 -0
  593. data/app/assets/components/marked/test/tests/tidyness.text +5 -0
  594. data/app/assets/components/marked/test/tests/toplevel_paragraphs.gfm.html +34 -0
  595. data/app/assets/components/marked/test/tests/toplevel_paragraphs.gfm.text +37 -0
  596. data/app/assets/components/marked/test/tests/tricky_list.html +23 -0
  597. data/app/assets/components/marked/test/tests/tricky_list.text +15 -0
  598. data/app/assets/components/marked-element/README.md +4 -0
  599. data/app/assets/components/marked-element/bower.json +8 -0
  600. data/app/assets/components/marked-element/demo.html +51 -0
  601. data/app/assets/components/marked-element/index.html +22 -0
  602. data/app/assets/components/marked-element/marked-element.html +50 -0
  603. data/app/assets/components/marked-element/marked-import.html +10 -0
  604. data/app/assets/components/platform/README.md +6 -0
  605. data/app/assets/components/platform/bower.json +16 -0
  606. data/app/assets/components/platform/build.log +35 -0
  607. data/app/assets/components/platform/platform.js +16 -0
  608. data/app/assets/components/platform/platform.js.map +1 -0
  609. data/app/assets/components/polymer/README.md +17 -0
  610. data/app/assets/components/polymer/bower.json +8 -0
  611. data/app/assets/components/polymer/build.log +35 -0
  612. data/app/assets/components/polymer/layout.html +286 -0
  613. data/app/assets/components/polymer/polymer.html +13 -0
  614. data/app/assets/components/polymer/polymer.js +14 -0
  615. data/app/assets/components/polymer/polymer.js.map +1 -0
  616. data/app/assets/components/polymer-test-tools/README.md +4 -0
  617. data/app/assets/components/polymer-test-tools/bower.json +5 -0
  618. data/app/assets/components/polymer-test-tools/chai/CONTRIBUTING.md +173 -0
  619. data/app/assets/components/polymer-test-tools/chai/History.md +895 -0
  620. data/app/assets/components/polymer-test-tools/chai/README.md +99 -0
  621. data/app/assets/components/polymer-test-tools/chai/ReleaseNotes.md +482 -0
  622. data/app/assets/components/polymer-test-tools/chai/bower.json +27 -0
  623. data/app/assets/components/polymer-test-tools/chai/chai.js +4782 -0
  624. data/app/assets/components/polymer-test-tools/chai/component.json +49 -0
  625. data/app/assets/components/polymer-test-tools/chai/karma.conf.js +38 -0
  626. data/app/assets/components/polymer-test-tools/chai/karma.sauce.js +51 -0
  627. data/app/assets/components/polymer-test-tools/chai/package.json +42 -0
  628. data/app/assets/components/polymer-test-tools/chai/sauce.browsers.js +138 -0
  629. data/app/assets/components/polymer-test-tools/htmltest.js +39 -0
  630. data/app/assets/components/polymer-test-tools/karma-common.conf.js +107 -0
  631. data/app/assets/components/polymer-test-tools/mocha/History.md +692 -0
  632. data/app/assets/components/polymer-test-tools/mocha/LICENSE +22 -0
  633. data/app/assets/components/polymer-test-tools/mocha/Readme.md +172 -0
  634. data/app/assets/components/polymer-test-tools/mocha/bower.json +23 -0
  635. data/app/assets/components/polymer-test-tools/mocha/media/logo.svg +8 -0
  636. data/app/assets/components/polymer-test-tools/mocha/mocha.css +270 -0
  637. data/app/assets/components/polymer-test-tools/mocha/mocha.js +5842 -0
  638. data/app/assets/components/polymer-test-tools/mocha-htmltest.js +70 -0
  639. data/app/assets/components/polymer-test-tools/tools.html +14 -0
  640. data/app/assets/components/prettify-element/README.md +14 -0
  641. data/app/assets/components/prettify-element/bower.json +8 -0
  642. data/app/assets/components/prettify-element/demo.html +85 -0
  643. data/app/assets/components/prettify-element/index.html +23 -0
  644. data/app/assets/components/prettify-element/prettify-element.html +120 -0
  645. data/app/assets/components/prettify-element/prettify-import.html +10 -0
  646. data/app/assets/components/sampler-scaffold/README.md +4 -0
  647. data/app/assets/components/sampler-scaffold/bower.json +12 -0
  648. data/app/assets/components/sampler-scaffold/demo.html +54 -0
  649. data/app/assets/components/sampler-scaffold/demos/checkbox.html +20 -0
  650. data/app/assets/components/sampler-scaffold/demos/color.html +20 -0
  651. data/app/assets/components/sampler-scaffold/demos/radio.html +20 -0
  652. data/app/assets/components/sampler-scaffold/demos/range.html +20 -0
  653. data/app/assets/components/sampler-scaffold/demos/string.html +20 -0
  654. data/app/assets/components/sampler-scaffold/index.html +22 -0
  655. data/app/assets/components/sampler-scaffold/sampler-scaffold.css +157 -0
  656. data/app/assets/components/sampler-scaffold/sampler-scaffold.html +224 -0
  657. data/app/assets/components/web-animations-js/COPYING +202 -0
  658. data/app/assets/components/web-animations-js/README.md +237 -0
  659. data/app/assets/components/web-animations-js/run-lint.sh +19 -0
  660. data/app/assets/components/web-animations-js/run-tests-android.sh +25 -0
  661. data/app/assets/components/web-animations-js/run-tests.sh +15 -0
  662. data/app/assets/components/web-animations-js/test/bootstrap.js +1266 -0
  663. data/app/assets/components/web-animations-js/test/img/error.png +0 -0
  664. data/app/assets/components/web-animations-js/test/img/success.png +0 -0
  665. data/app/assets/components/web-animations-js/test/img/unknown.png +0 -0
  666. data/app/assets/components/web-animations-js/test/perf/balls-add-compositing.html +147 -0
  667. data/app/assets/components/web-animations-js/test/perf/balls-replace-compositing.html +144 -0
  668. data/app/assets/components/web-animations-js/test/perf/perf.js +158 -0
  669. data/app/assets/components/web-animations-js/test/perf/updating-inline-style-during-animation.html +165 -0
  670. data/app/assets/components/web-animations-js/test/test-generator.html +240 -0
  671. data/app/assets/components/web-animations-js/test/test-results-post.html +3 -0
  672. data/app/assets/components/web-animations-js/test/test-runner.html +810 -0
  673. data/app/assets/components/web-animations-js/test/testcases/auto-test-box-shadow-checks.js +42 -0
  674. data/app/assets/components/web-animations-js/test/testcases/auto-test-box-shadow.html +40 -0
  675. data/app/assets/components/web-animations-js/test/testcases/auto-test-calc-checks.js +41 -0
  676. data/app/assets/components/web-animations-js/test/testcases/auto-test-calc.html +156 -0
  677. data/app/assets/components/web-animations-js/test/testcases/auto-test-change-playback-rate-checks.js +23 -0
  678. data/app/assets/components/web-animations-js/test/testcases/auto-test-circular-path-checks.js +65 -0
  679. data/app/assets/components/web-animations-js/test/testcases/auto-test-circular-path.html +83 -0
  680. data/app/assets/components/web-animations-js/test/testcases/auto-test-color-checks.js +101 -0
  681. data/app/assets/components/web-animations-js/test/testcases/auto-test-color-names-checks.js +431 -0
  682. data/app/assets/components/web-animations-js/test/testcases/auto-test-color-names.html +204 -0
  683. data/app/assets/components/web-animations-js/test/testcases/auto-test-color.html +117 -0
  684. data/app/assets/components/web-animations-js/test/testcases/auto-test-composite-transforms-checks.js +45 -0
  685. data/app/assets/components/web-animations-js/test/testcases/auto-test-composite-transforms.html +97 -0
  686. data/app/assets/components/web-animations-js/test/testcases/auto-test-compositor-checks.js +26 -0
  687. data/app/assets/components/web-animations-js/test/testcases/auto-test-compositor.html +68 -0
  688. data/app/assets/components/web-animations-js/test/testcases/auto-test-delay-checks.js +92 -0
  689. data/app/assets/components/web-animations-js/test/testcases/auto-test-delay.html +39 -0
  690. data/app/assets/components/web-animations-js/test/testcases/auto-test-element-animate-checks.js +8 -0
  691. data/app/assets/components/web-animations-js/test/testcases/auto-test-element-animate.html +30 -0
  692. data/app/assets/components/web-animations-js/test/testcases/auto-test-fill-values-checks.js +266 -0
  693. data/app/assets/components/web-animations-js/test/testcases/auto-test-fill-values.html +114 -0
  694. data/app/assets/components/web-animations-js/test/testcases/auto-test-font-weight-checks.js +26 -0
  695. data/app/assets/components/web-animations-js/test/testcases/auto-test-font-weight.html +43 -0
  696. data/app/assets/components/web-animations-js/test/testcases/auto-test-initial-checks.js +74 -0
  697. data/app/assets/components/web-animations-js/test/testcases/auto-test-initial.html +242 -0
  698. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-checks.js +17 -0
  699. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-fallback-checks.js +17 -0
  700. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-fallback.html +78 -0
  701. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-methods-checks.js +17 -0
  702. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-methods.html +70 -0
  703. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style.html +69 -0
  704. data/app/assets/components/web-animations-js/test/testcases/auto-test-integer-checks.js +38 -0
  705. data/app/assets/components/web-animations-js/test/testcases/auto-test-integer.html +52 -0
  706. data/app/assets/components/web-animations-js/test/testcases/auto-test-iteration-start-checks.js +506 -0
  707. data/app/assets/components/web-animations-js/test/testcases/auto-test-iteration-start.html +160 -0
  708. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-checks.js +44 -0
  709. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-holes-checks.js +41 -0
  710. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-holes.html +48 -0
  711. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate.html +50 -0
  712. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-basic-checks.js +162 -0
  713. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-basic.html +116 -0
  714. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-fill-checks.js +602 -0
  715. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-fill.html +167 -0
  716. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-creation-checks.js +67 -0
  717. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-creation.html +109 -0
  718. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-easing-checks.js +65 -0
  719. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-easing.html +64 -0
  720. data/app/assets/components/web-animations-js/test/testcases/auto-test-length-units-checks.js +342 -0
  721. data/app/assets/components/web-animations-js/test/testcases/auto-test-length-units.html +103 -0
  722. data/app/assets/components/web-animations-js/test/testcases/auto-test-matrix-transforms-checks.js +56 -0
  723. data/app/assets/components/web-animations-js/test/testcases/auto-test-matrix-transforms.html +90 -0
  724. data/app/assets/components/web-animations-js/test/testcases/auto-test-motion-path-checks.js +110 -0
  725. data/app/assets/components/web-animations-js/test/testcases/auto-test-motion-path.html +133 -0
  726. data/app/assets/components/web-animations-js/test/testcases/auto-test-non-numeric-checks.js +26 -0
  727. data/app/assets/components/web-animations-js/test/testcases/auto-test-non-numeric.html +42 -0
  728. data/app/assets/components/web-animations-js/test/testcases/auto-test-parent-checks.js +38 -0
  729. data/app/assets/components/web-animations-js/test/testcases/auto-test-parent.html +52 -0
  730. data/app/assets/components/web-animations-js/test/testcases/auto-test-partial-keyframes-checks.js +27 -0
  731. data/app/assets/components/web-animations-js/test/testcases/auto-test-partial-keyframes.html +43 -0
  732. data/app/assets/components/web-animations-js/test/testcases/auto-test-path-checks.js +20 -0
  733. data/app/assets/components/web-animations-js/test/testcases/auto-test-path.html +41 -0
  734. data/app/assets/components/web-animations-js/test/testcases/auto-test-pause-checks.js +79 -0
  735. data/app/assets/components/web-animations-js/test/testcases/auto-test-pause.html +82 -0
  736. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-checks.js +37 -0
  737. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-origin-checks.js +61 -0
  738. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-origin.html +94 -0
  739. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective.html +79 -0
  740. data/app/assets/components/web-animations-js/test/testcases/auto-test-playback-rate-checks.js +146 -0
  741. data/app/assets/components/web-animations-js/test/testcases/auto-test-playback-rate.html +128 -0
  742. data/app/assets/components/web-animations-js/test/testcases/auto-test-position-list-type-checks.js +73 -0
  743. data/app/assets/components/web-animations-js/test/testcases/auto-test-rectangle-checks.js +23 -0
  744. data/app/assets/components/web-animations-js/test/testcases/auto-test-rectangle.html +57 -0
  745. data/app/assets/components/web-animations-js/test/testcases/auto-test-reparent-checks.js +95 -0
  746. data/app/assets/components/web-animations-js/test/testcases/auto-test-reparent.html +60 -0
  747. data/app/assets/components/web-animations-js/test/testcases/auto-test-seq-speed-checks.js +69 -0
  748. data/app/assets/components/web-animations-js/test/testcases/auto-test-seq-speed.html +86 -0
  749. data/app/assets/components/web-animations-js/test/testcases/auto-test-shorthand-checks.js +197 -0
  750. data/app/assets/components/web-animations-js/test/testcases/auto-test-shorthand.html +115 -0
  751. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-checks.js +58 -0
  752. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-iterations-checks.js +92 -0
  753. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-iterations.html +107 -0
  754. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time.html +90 -0
  755. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-anim-checks.js +23 -0
  756. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-anim.html +39 -0
  757. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-circle-checks.js +23 -0
  758. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-circle.html +38 -0
  759. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-color-checks.js +20 -0
  760. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-color.html +36 -0
  761. data/app/assets/components/web-animations-js/test/testcases/auto-test-text-shadow-checks.js +20 -0
  762. data/app/assets/components/web-animations-js/test/testcases/auto-test-text-shadow.html +37 -0
  763. data/app/assets/components/web-animations-js/test/testcases/auto-test-timing-functions-checks.js +89 -0
  764. data/app/assets/components/web-animations-js/test/testcases/auto-test-timing-functions.html +77 -0
  765. data/app/assets/components/web-animations-js/test/testcases/auto-test-to-animation-checks.js +58 -0
  766. data/app/assets/components/web-animations-js/test/testcases/auto-test-to-animation.html +83 -0
  767. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-3d-checks.js +134 -0
  768. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-3d.html +123 -0
  769. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-functions-checks.js +160 -0
  770. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-functions.html +158 -0
  771. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-origin-checks.js +37 -0
  772. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-origin.html +80 -0
  773. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-primitives-checks.js +292 -0
  774. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-primitives.html +97 -0
  775. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-units-checks.js +202 -0
  776. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-units.html +98 -0
  777. data/app/assets/components/web-animations-js/test/testcases/auto-test-visibility-checks.js +54 -0
  778. data/app/assets/components/web-animations-js/test/testcases/auto-test-visibility.html +80 -0
  779. data/app/assets/components/web-animations-js/test/testcases/auto-test-wrapping-bug-checks.js +58 -0
  780. data/app/assets/components/web-animations-js/test/testcases/auto-test-wrapping-bug.html +60 -0
  781. data/app/assets/components/web-animations-js/test/testcases/background.png +0 -0
  782. data/app/assets/components/web-animations-js/test/testcases/disabled-auto-test-change-playback-rate.html +65 -0
  783. data/app/assets/components/web-animations-js/test/testcases/disabled-auto-test-position-list-type.html +103 -0
  784. data/app/assets/components/web-animations-js/test/testcases/disabled-media.html +439 -0
  785. data/app/assets/components/web-animations-js/test/testcases/disabled-test-compositing-order.html +112 -0
  786. data/app/assets/components/web-animations-js/test/testcases/impl-test-deprecation.html +85 -0
  787. data/app/assets/components/web-animations-js/test/testcases/impl-test-from-css-value.html +219 -0
  788. data/app/assets/components/web-animations-js/test/testcases/impl-test-paced-timing-function.html +83 -0
  789. data/app/assets/components/web-animations-js/test/testcases/impl-test-totimelinetime.html +37 -0
  790. data/app/assets/components/web-animations-js/test/testcases/impl-unit-test-position-type.html +256 -0
  791. data/app/assets/components/web-animations-js/test/testcases/manual-test-add-player-onend.html +57 -0
  792. data/app/assets/components/web-animations-js/test/testcases/manual-test-preset-timings.html +71 -0
  793. data/app/assets/components/web-animations-js/test/testcases/manual-test-step.html +88 -0
  794. data/app/assets/components/web-animations-js/test/testcases/small.mp4 +0 -0
  795. data/app/assets/components/web-animations-js/test/testcases/small.webm +0 -0
  796. data/app/assets/components/web-animations-js/test/testcases/test-bounds.html +69 -0
  797. data/app/assets/components/web-animations-js/test/testcases/test-document-timeline.html +53 -0
  798. data/app/assets/components/web-animations-js/test/testcases/test-dynamic-load.html +65 -0
  799. data/app/assets/components/web-animations-js/test/testcases/test-fill-auto.html +78 -0
  800. data/app/assets/components/web-animations-js/test/testcases/test-getcurrent.html +324 -0
  801. data/app/assets/components/web-animations-js/test/testcases/test-keyframe-animation-effect.html +248 -0
  802. data/app/assets/components/web-animations-js/test/testcases/test-keyframe-composite-operation.html +182 -0
  803. data/app/assets/components/web-animations-js/test/testcases/test-null-target.html +66 -0
  804. data/app/assets/components/web-animations-js/test/testcases/test-pause-for-testing.html +52 -0
  805. data/app/assets/components/web-animations-js/test/testcases/test-player-addeventlistener.html +161 -0
  806. data/app/assets/components/web-animations-js/test/testcases/test-player-cleanup.html +79 -0
  807. data/app/assets/components/web-animations-js/test/testcases/test-player-finish-event.html +101 -0
  808. data/app/assets/components/web-animations-js/test/testcases/test-player-sort.html +48 -0
  809. data/app/assets/components/web-animations-js/test/testcases/test-player.html +786 -0
  810. data/app/assets/components/web-animations-js/test/testcases/test-pseudo-element-reference.html +38 -0
  811. data/app/assets/components/web-animations-js/test/testcases/test-repeated-pause.html +54 -0
  812. data/app/assets/components/web-animations-js/test/testcases/test-restart.html +115 -0
  813. data/app/assets/components/web-animations-js/test/testcases/test-reversed-player-active-phase.html +28 -0
  814. data/app/assets/components/web-animations-js/test/testcases/test-rotation-not-reversed.html +55 -0
  815. data/app/assets/components/web-animations-js/test/testcases/test-update-state.html +113 -0
  816. data/app/assets/components/web-animations-js/test/testcases/unit-test-clone.html +80 -0
  817. data/app/assets/components/web-animations-js/test/testcases/unit-test-delay.html +66 -0
  818. data/app/assets/components/web-animations-js/test/testcases/unit-test-dom-operations.html +164 -0
  819. data/app/assets/components/web-animations-js/test/testcases/unit-test-duration.html +66 -0
  820. data/app/assets/components/web-animations-js/test/testcases/unit-test-get-siblings.html +112 -0
  821. data/app/assets/components/web-animations-js/test/testcases/unit-test-modify-timing-params.html +105 -0
  822. data/app/assets/components/web-animations-js/test/testcases/unit-test-null-effect.html +43 -0
  823. data/app/assets/components/web-animations-js/test/testcases/unit-test-set-parent.html +111 -0
  824. data/app/assets/components/web-animations-js/test/testcases/unit-test-testharness-failure.html +54 -0
  825. data/app/assets/components/web-animations-js/test/testcases/unit-test-testharness.html +248 -0
  826. data/app/assets/components/web-animations-js/test/testcases/unit-test-unpause.html +68 -0
  827. data/app/assets/components/web-animations-js/test/testcases.js +93 -0
  828. data/app/assets/components/web-animations-js/test/testharness_timing.css +75 -0
  829. data/app/assets/components/web-animations-js/test/update-testcases.py +63 -0
  830. data/app/assets/components/web-animations-js/tools/android/config.sh +8 -0
  831. data/app/assets/components/web-animations-js/tools/android/setup.sh +152 -0
  832. data/app/assets/components/web-animations-js/tools/android/stop.sh +20 -0
  833. data/app/assets/components/web-animations-js/tools/python/requirements.txt +12 -0
  834. data/app/assets/components/web-animations-js/tools/python/run-tests.py +813 -0
  835. data/app/assets/components/web-animations-js/tools/python/setup.sh +60 -0
  836. data/app/assets/components/web-animations-js/tutorial/basic-animations/basic-animation-exercise-1.html +62 -0
  837. data/app/assets/components/web-animations-js/tutorial/basic-animations/basic-animation.html +120 -0
  838. data/app/assets/components/web-animations-js/tutorial/iframe-contents.html +29 -0
  839. data/app/assets/components/web-animations-js/tutorial/jquery.js +9555 -0
  840. data/app/assets/components/web-animations-js/tutorial/page-load.js +114 -0
  841. data/app/assets/components/web-animations-js/tutorial/parallel/parallel-exercise-1.html +58 -0
  842. data/app/assets/components/web-animations-js/tutorial/parallel/parallel.html +101 -0
  843. data/app/assets/components/web-animations-js/tutorial/sample-tutorial.html +44 -0
  844. data/app/assets/components/web-animations-js/tutorial/try-it-yourself.js +216 -0
  845. data/app/assets/components/web-animations-js/tutorial/tutorial-style.css +344 -0
  846. data/app/assets/components/web-animations-js/tutorial/tutorial-testing.js +84 -0
  847. data/app/assets/components/web-animations-js/web-animations.js +77 -214
  848. data/lib/polymer-core-rails/version.rb +1 -1
  849. metadata +833 -46
  850. data/app/assets/components/core-animation/web-animations.html.erb +0 -1
  851. data/app/assets/components/core-drawer-panel/core-drawer-panel.html.erb +0 -150
  852. data/app/assets/components/core-icon/core-icon.html.erb +0 -126
  853. data/app/assets/components/core-input/core-input.html.erb +0 -311
  854. data/app/assets/components/core-menu-button/core-menu-button.html.erb +0 -139
  855. data/app/assets/components/core-transition/core-transition-css.html.erb +0 -76
  856. data/app/assets/components/core-transition/core-transition.html.erb +0 -44
@@ -0,0 +1,786 @@
1
+ <!--
2
+ Copyright 2013 Google Inc. All Rights Reserved.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+
16
+ Written by Steph McArthur
17
+ -->
18
+
19
+ <!DOCTYPE html><meta charset="UTF-8">
20
+ <div id="anim"></div>
21
+
22
+ <script src="../bootstrap.js"></script>
23
+ <script>
24
+ var animation = new Animation(anim, {left: "100px"}, 100);
25
+ var dt = document.timeline;
26
+
27
+ // Test AnimationPlayer.timeline.
28
+ var player1 = dt.play(animation);
29
+ test(function() {assert_equals(player1.timeline, document.timeline)},
30
+ "AnimationPlayer.timeline is document timeline");
31
+
32
+ // Test that TimedItem.player and AnimationPlayer.source are consistent.
33
+ test(function() {assert_equals(player1.source, animation)},
34
+ "AnimationPlayer.source should be the Animation");
35
+ test(function() {assert_equals(animation.player, player1)},
36
+ "TimedItem.player should be the AnimationPlayer");
37
+
38
+ // Test that play() always returns a new AnimationPlayer.
39
+ var player2 = dt.play(animation);
40
+ test(function() {assert_not_equals(player2, player1)},
41
+ "Repeated calls to play() should create a new AnimationPlayer");
42
+ test(function() {assert_equals(animation.player, player2)},
43
+ "Repeated play(): TimedItem.player should be the AnimationPlayer");
44
+ test(function() {assert_equals(player2.source, animation)},
45
+ "Repeated play(): AnimationPlayer.source should be the Animation");
46
+ test(function() {assert_equals(player2.startTime, player1.startTime)},
47
+ "Repeated play(): Players should have same start time");
48
+
49
+ // Test explicit setting of AnimationPlayer.source.
50
+ player1.source = animation;
51
+ test(function() {assert_equals(player2.source, null)},
52
+ "Set AnimationPlayer.source: Old source should be null");
53
+ test(function() {assert_equals(player1.source, animation)},
54
+ "Set AnimationPlayer.source: New source should be the Animation");
55
+ test(function() {assert_equals(animation.player, player1)},
56
+ "Set AnimationPlayer.source: TimedItem.player should be the AnimationPlayer");
57
+
58
+ // Test that TimedItem.player gives null on a detached tree.
59
+ var animation2 =
60
+ new Animation(document.getElementById("anim"), {left: "100px"});
61
+ var animationGroup = new AnimationGroup([animation2]);
62
+ test(function() {assert_equals(animationGroup.player, null)},
63
+ "TimedItem.player should be null for root");
64
+ test(function() {assert_equals(animation2.player, null)},
65
+ "TimedItem.player should be null for leaf");
66
+
67
+ // Test that TimedItem.player remotes to the root of the tree.
68
+ var player3 = dt.play(animationGroup);
69
+ test(function() {assert_equals(animation2.player, player3)},
70
+ "TimedItem.player should remote");
71
+
72
+ // Test that calling play() on a TimedItem with a parent results in
73
+ // reparenting.
74
+ var player4 = dt.play(animation2);
75
+ test(function() {assert_equals(animation2.parent, null)},
76
+ "Animation should be reparented");
77
+ test(function() {assert_equals(animationGroup.children.length, 0)},
78
+ "Animation parent should be updated, leaving animationGroup.children.length = 0");
79
+ test(function() {assert_equals(player4.source, animation2)},
80
+ "AnimationPlayer should use reparented animation");
81
+
82
+ // Test that setting a parent on a TimedItem with an AnimationPlayer causes the
83
+ // player to be disconnected.
84
+ animationGroup.append(animation2);
85
+ test(function() {assert_equals(animationGroup.player, player3)},
86
+ "TimedItem.player should be updated for root");
87
+ test(function() {assert_equals(animation2.player, player3)},
88
+ "TimedItem.player should be updated for leaf");
89
+ test(function() {assert_equals(player4.source, null)},
90
+ "AnimationPlayer.source should be updated");
91
+ test(function() {assert_equals(animation2.parent, animationGroup)},
92
+ "Animation.parent should be updated");
93
+ test(function() {assert_equals(animationGroup.children.length, 1)},
94
+ "Animation parent should be updated, leaving animationGroup.children.length = 1");
95
+ test(function() {assert_equals(animationGroup.children[0], animation2)},
96
+ "Animation parent should be updated");
97
+
98
+ // Test that currentTime is zero before timeline starts.
99
+ test(function() {assert_equals(document.timeline.play(animation).currentTime, 0)},
100
+ "currentTime should be zero before Timeline starts");
101
+
102
+ // Test that startTime is zero before timeline starts.
103
+ test(function() {assert_equals(document.timeline.play(animation).startTime, 0)},
104
+ "startTime should be zero before Timeline starts");
105
+
106
+ // Test that setting currentTime has an effect before the timeline starts.
107
+ var player5 = dt.play(animation);
108
+ player5.currentTime = 42;
109
+ test(function() {assert_equals(player5.currentTime, 42)},
110
+ "player5 can be seeked before timeline starts");
111
+ timing_test(function() {
112
+ at(0.1, function() {
113
+ assert_equals(player5.currentTime, 42.1);
114
+ });
115
+ }, "player5's updates to currentTime should persist after Timeline starts");
116
+
117
+ // Test that setting startTime has an effect before the timeline starts.
118
+ var player6 = dt.play(animation.clone());
119
+ player6.startTime = 42;
120
+ test(function() {assert_equals(player6.currentTime, -42)},
121
+ "player6's currentTime should always be zero before Timeline starts");
122
+
123
+ // Test that an AnimationPlayer's TimedItem gets a null inherited time until the
124
+ // timeline starts.
125
+ var animation1 = new Animation(document.getElementById("anim"), {left: "100px"});
126
+ dt.play(animation1);
127
+ test(function() {assert_equals(animation1.localTime, null)},
128
+ "TimedItem's inherited time, and thus " +
129
+ "localTime should be null before Timeline starts");
130
+ timing_test(function() {
131
+ at(0.0, function() {assert_not_equals(animation1.localTime, null)});
132
+ }, "TimedItem's inherited time " +
133
+ "and thus localTime should not be null after Timeline starts");
134
+
135
+ // Test that TimedItem is updated immediately on calling Timeline.play() after
136
+ // the timeline starts.
137
+ var animation4 = new Animation(
138
+ document.getElementById("anim"), {left: "100px"});
139
+ test(function() {assert_equals(animation4.localTime, null)},
140
+ "localTime should be null before playing");
141
+ timing_test(function() {
142
+ at(0.0, function() {
143
+ document.timeline.play(animation4);
144
+ assert_equals(animation4.localTime, 0)
145
+ });
146
+ }, "localTime should be set by playing");
147
+
148
+ // Test that updates to currentTime take immediate effect.
149
+ timing_test(function() {
150
+ at(0.0, function() {
151
+ var animation5 = new Animation(
152
+ document.getElementById("anim"), {left: "100px"}, 100);
153
+ document.timeline.play(animation5).currentTime = 42;
154
+ assert_equals(animation5.localTime, 42);
155
+ });
156
+ }, "Updates to AnimationPlayer.currentTime should take immediate effect");
157
+
158
+ // Test that updates to source take immediate effect.
159
+ timing_test(function() {
160
+ at(0.0, function() {
161
+ var player = document.timeline.play(new Animation(
162
+ document.getElementById("anim"), {left: "100px"}));
163
+ var animation7 = new Animation(
164
+ document.getElementById("anim"), {left: "100px"});
165
+ player.source = animation7;
166
+ assert_equals(animation7.localTime, 0);
167
+ });
168
+ }, "Updates to AnimationPlayer.source should take immediate effect");
169
+
170
+ function createPlayer(duration) {
171
+ return document.timeline.play(new Animation(null, null, duration));
172
+ }
173
+
174
+ // Tests the initial values of the AnimationPlayer API.
175
+ timing_test(function() {
176
+ at(0, function() {
177
+ var anim = new Animation(null, null, 3);
178
+ assert_equals(anim.player, null, "player should be null initially");
179
+
180
+ // Check state after playing
181
+ document.timeline.play(anim);
182
+ assert_not_equals(anim.player, null, "player should be not be null when playing");
183
+ assert_equals(anim.player.source, anim, "Initial source content");
184
+ assert_equals(anim.player.timeline, document.timeline, "Initial document timeline");
185
+ assert_equals(anim.player.startTime, document.timeline.currentTime, "Initial start time");
186
+ assert_equals(anim.player.currentTime, 0, "Initial current time");
187
+ assert_equals(anim.player.timeLag, 0, "Initial time lag");
188
+ assert_equals(anim.player.playbackRate, 1, "Initial playback rate");
189
+ assert_false(anim.player.paused, "Initial paused state");
190
+ assert_false(anim.player.finished, "Initial finished state");
191
+ });
192
+ }, "Initial state");
193
+
194
+ // Test paused states after pausing.
195
+ test(function() {
196
+ var player = createPlayer(3);
197
+
198
+ // Pause
199
+ player.pause();
200
+ assert_true(player.paused, "Paused state after pausing");
201
+ assert_false(player.finished, "Finished state after pausing");
202
+
203
+ // Unpause
204
+ player.play();
205
+ assert_false(player.paused, "Paused state after unpausing");
206
+ assert_false(player.finished, "Finished state after unpausing");
207
+ }, "Pause");
208
+
209
+ // Test seeking behind startTime for a forwards player.
210
+ timing_test(function() {
211
+ var player = createPlayer(3);
212
+
213
+ // Seek before start
214
+ player.currentTime = -0.1;
215
+ assert_equals(player.currentTime, -0.1, "Current time after seeking before start");
216
+ assert_false(player.paused, "Paused state after seeking before start");
217
+ assert_false(player.finished, "Finished state after seeking before start");
218
+
219
+ // Check player does progress
220
+ at(0.2, function() {
221
+ assert_equals(player.currentTime, 0.1, "Current time should progress");
222
+ });
223
+ }, "Seek behind content (forwards)");
224
+
225
+ // Test players do not get bounded after updating startTime such that they are before the start time.
226
+ timing_test(function() {
227
+ var player = createPlayer(3);
228
+
229
+ // Set start time in the future
230
+ player.startTime = 0.1;
231
+
232
+ // Check state of player
233
+ assert_equals(player.currentTime, -0.1, "Current time while waiting to start");
234
+ assert_false(player.paused, "Paused state while waiting to start");
235
+ assert_false(player.finished, "Finished state while waiting to start");
236
+
237
+ // Check player starts automatically
238
+ at(0.2, function() {
239
+ assert_equals(player.currentTime, 0.1, "Current time should progress");
240
+ assert_false(player.paused, "Paused state after starting");
241
+ assert_false(player.finished, "Finished state after starting");
242
+ });
243
+ }, "No bounding at start");
244
+
245
+ // Test players get bounded when they finish their source content.
246
+ timing_test(function() {
247
+ var player = createPlayer(3);
248
+
249
+ // Seek to just before end
250
+ player.currentTime = 2.9;
251
+
252
+ // Check state of player
253
+ assert_equals(player.currentTime, 2.9, "Current time just before end");
254
+ assert_false(player.paused, "Paused state just before end");
255
+ assert_false(player.finished, "Finished state just before end");
256
+
257
+ // Check player after finishing
258
+ at(0.2, function() {
259
+ assert_equals(player.currentTime, 3.0, "Current time when bounded progress");
260
+ assert_false(player.paused, "Paused state after ending");
261
+ assert_true(player.finished, "Finished state after ending");
262
+ });
263
+ }, "Limiting at end (seek with current time)");
264
+
265
+ // Test players get bounded when they finish their source content after altering start time.
266
+ timing_test(function() {
267
+ var player = createPlayer(3);
268
+
269
+ // Seek to just before end using the start time
270
+ player.startTime -= 2.9;
271
+
272
+ // Check state of player
273
+ assert_equals(player.currentTime, 2.9, "Current time just before end");
274
+ assert_false(player.paused, "Paused state just before end");
275
+ assert_false(player.finished, "Finished state just before end");
276
+
277
+ // Check player after finishing
278
+ at(0.2, function() {
279
+ assert_equals(player.currentTime, 3.0, "Current time when bounded progress");
280
+ assert_false(player.paused, "Paused state after ending");
281
+ assert_true(player.finished, "Finished state after ending");
282
+ });
283
+ }, "Limiting at end (seek with start time)");
284
+
285
+ // Test reversing a player prior to starting doesn't snap the current time to the beginning.
286
+ timing_test(function() {
287
+ var player = createPlayer(3);
288
+
289
+ // Seek before start
290
+ player.currentTime = -0.1;
291
+
292
+ // Check state
293
+ assert_equals(player.currentTime, -0.1, "Current time before reversing");
294
+ assert_false(player.finished, "Finished state before reversing");
295
+
296
+ // Reverse
297
+ player.reverse();
298
+ assert_equals(player.currentTime, -0.1, "Current time after reversing");
299
+ assert_true(player.finished, "Finished state after reversing");
300
+ assert_equals(player.playbackRate, -1, "Playback rate after reversing");
301
+
302
+ // Check player after some time
303
+ at(0.2, function() {
304
+ assert_equals(player.currentTime, -0.1, "Current time later");
305
+ assert_true(player.finished, "Finished state later");
306
+ });
307
+ }, "reverse() before start");
308
+
309
+ // Test reversing a player at the start causes the player to become bounded.
310
+ timing_test(function() {
311
+ var player = createPlayer(3);
312
+
313
+ // Reverse
314
+ player.reverse();
315
+ assert_equals(player.currentTime, 0, "Current time after reversing");
316
+ assert_true(player.finished, "Finished state after reversing");
317
+ assert_equals(player.playbackRate, -1, "Playback rate after reversing");
318
+
319
+ // Check player after some time
320
+ at(0.2, function() {
321
+ assert_equals(player.currentTime, 0, "Current time later");
322
+ assert_true(player.finished, "Finished state later");
323
+ });
324
+ }, "reverse() at start");
325
+
326
+ // Test reversing a player halfway through an animation.
327
+ timing_test(function() {
328
+ var player = createPlayer(3);
329
+
330
+ // Seek midway
331
+ player.currentTime = 1.5;
332
+
333
+ // Reverse
334
+ player.reverse();
335
+ assert_equals(player.currentTime, 1.5, "Current time after reversing");
336
+ assert_false(player.finished, "Finished state after reversing");
337
+ assert_equals(player.playbackRate, -1, "Playback rate after reversing");
338
+
339
+ // Check player after some time
340
+ at(0.2, function() {
341
+ assert_equals(player.currentTime, 1.3, "Current time when reversing");
342
+ assert_false(player.finished, "Finished state later");
343
+ });
344
+ }, "reverse() while playing");
345
+
346
+ // Test reversing a player that has ended starts playing backwards.
347
+ timing_test(function() {
348
+ var player = createPlayer(3);
349
+
350
+ // Seek to just before the end
351
+ player.currentTime = 2.9;
352
+
353
+ // Wait to finish
354
+ at(0.2, function() {
355
+ assert_equals(player.currentTime, 3.0, "Current time when finished");
356
+ assert_true(player.finished, "Finished state after finished");
357
+
358
+ // Reverse
359
+ player.reverse();
360
+ assert_equals(player.currentTime, 3.0, "Current time after reversing");
361
+ assert_false(player.finished, "Finished state after reversing");
362
+ assert_equals(player.playbackRate, -1, "Playback rate after reversing");
363
+
364
+ // Check we actually reverse
365
+ at(0.2, function() {
366
+ assert_equals(player.currentTime, 2.8, "Current time after beginning reverse");
367
+ assert_false(player.finished, "Finished state after reversing");
368
+ });
369
+ });
370
+ }, "reverse() when finished");
371
+
372
+ // Test reversing a player seeked past the end will snap back to the end.
373
+ timing_test(function() {
374
+ var player = createPlayer(3);
375
+
376
+ // Seek to past the end
377
+ player.currentTime = 4.0
378
+
379
+ player.reverse();
380
+ assert_equals(player.currentTime, 3.0, "Current time after reversing");
381
+ assert_false(player.finished, "Finished state after reversing");
382
+ assert_equals(player.playbackRate, -1, "Playback rate after reversing");
383
+
384
+ // Check we actually reverse
385
+ at(0.2, function() {
386
+ assert_equals(player.currentTime, 2.8, "Current time after beginning reverse");
387
+ assert_false(player.finished, "Finished state after reversing");
388
+ });
389
+ }, "reverse() when seeked past end");
390
+
391
+ // Test player current time after adjusting start time.
392
+ test(function() {
393
+ var player = createPlayer(3);
394
+
395
+ player.startTime = 1;
396
+
397
+ assert_equals(player.currentTime, -1, "currentTime while waiting to start");
398
+ assert_false(player.finished, "Finished state while waiting to start");
399
+
400
+ // Then put it in range
401
+ player.startTime -= 2;
402
+ assert_equals(player.currentTime, 1, "currentTime after updating start time");
403
+ assert_false(player.finished, "Finished state while after updating start time");
404
+ }, "Adjust start time (1)");
405
+
406
+ // Test player current time after adjusting start time and playing.
407
+ timing_test(function() {
408
+ var player = createPlayer(3);
409
+
410
+ player.startTime = 1;
411
+
412
+ assert_equals(player.currentTime, -1, "currentTime while waiting to start");
413
+ assert_false(player.finished, "Finished state while waiting to start");
414
+
415
+ // Then adjust start time
416
+ player.startTime -= 0.75;
417
+
418
+ // Check player is still waiting
419
+ assert_equals(player.currentTime, -0.25, "currentTime while waiting to start");
420
+ assert_false(player.finished, "Finished state while still waiting to start");
421
+
422
+ // Verify the time *did* update though
423
+ at(0.5, function() {
424
+ assert_equals(player.currentTime, 0.25, "currentTime after starting to play");
425
+ assert_false(player.finished, "Finished state after starting to play");
426
+ });
427
+ }, "Adjust start time (2)");
428
+
429
+ // Test player bounding by changing start time.
430
+ test(function() {
431
+ var player = createPlayer(3);
432
+
433
+ // Put it past the end
434
+ player.startTime = -4;
435
+ assert_equals(player.currentTime, 3, "currentTime after end");
436
+ assert_true(player.finished, "Finished state after end");
437
+ }, "Adjust start time (3)");
438
+
439
+ // Test bounding and unbounding a player by modifying start time.
440
+ test(function() {
441
+ var player = createPlayer(3);
442
+
443
+ // Put player in limited stage
444
+ player.startTime = -4;
445
+
446
+ assert_equals(player.currentTime, 3, "currentTime state while limited");
447
+ assert_true(player.finished, "Finished state while limited");
448
+
449
+ // Then put it in range
450
+ player.startTime += 2;
451
+ assert_equals(player.currentTime, 2, "currentTime after updating start time");
452
+ assert_false(player.finished, "Finished state while after updating start time");
453
+ }, "Adjust start time (4)");
454
+
455
+ // Test seeking past end of player.
456
+ timing_test(function() {
457
+ var player = createPlayer(3);
458
+ player.currentTime = 4;
459
+ assert_equals(player.currentTime, 4, "currentTime before waiting");
460
+ at(0.2, function() {
461
+ assert_equals(player.currentTime, 4, "currentTime after waiting");
462
+ });
463
+ }, "Seeking past player content end and waiting");
464
+
465
+ // Test seeking before start of reversed player.
466
+ timing_test(function() {
467
+ var player = createPlayer(3);
468
+ player.playbackRate = -1;
469
+ player.currentTime = -1;
470
+ assert_equals(player.currentTime, -1, "currentTime before waiting");
471
+ at(0.2, function() {
472
+ assert_equals(player.currentTime, -1, "currentTime after waiting");
473
+ });
474
+ }, "Seeking before reversed player content start and waiting");
475
+
476
+ // Test reversing the playback rate of a bounded player.
477
+ timing_test(function() {
478
+ var player = createPlayer(3);
479
+
480
+ // Set up player to start in 0.1s
481
+ player.startTime = 0.1;
482
+
483
+ // Check state
484
+ assert_equals(player.currentTime, -0.1, "currentTime after while waiting to start");
485
+ assert_false(player.finished, "Finished state while waiting to start");
486
+
487
+ // Reverse playbackRate
488
+ player.playbackRate = -1;
489
+
490
+ // We should maintain the same current time
491
+ assert_equals(player.currentTime, -0.1, "currentTime after updating playbackRate");
492
+ assert_true(player.finished, "Finished state after updating playbackRate");
493
+
494
+ // If we wait a while we should be stuck at the end
495
+ at(0.2, function() {
496
+ assert_equals(player.currentTime, -0.1, "currentTime after waiting");
497
+ assert_true(player.finished, "Finished state after waiting");
498
+
499
+ // Call play and we should start from the end
500
+ player.play();
501
+ assert_equals(player.currentTime, 3, "currentTime after play()");
502
+ assert_false(player.finished, "Finished state after play()");
503
+ });
504
+ }, "Reversing playbackRate before start");
505
+
506
+ // Test normal current time progression of a player after being bounded and unbounded.
507
+ timing_test(function() {
508
+ // Set up player
509
+ var player = createPlayer(3);
510
+
511
+ // Seek to bounded time
512
+ player.currentTime = 4;
513
+
514
+ // Check state
515
+ assert_equals(player.currentTime, 4, "currentTime while bounded");
516
+ assert_true(player.finished, "Finished state while bounded");
517
+
518
+ // Seek to unbounded time
519
+ player.currentTime = 2;
520
+ assert_equals(player.currentTime, 2, "currentTime while unbounded");
521
+ assert_false(player.finished, "Finished state while unbounded");
522
+
523
+ // Check it actually is playing
524
+ at(0.2, function() {
525
+ assert_equals(player.currentTime, 2.2, "Current time after playing unbounded");
526
+ });
527
+ }, "Seeking from end to playing");
528
+
529
+ // Test finishing and replaying a player in reverse.
530
+ timing_test(function() {
531
+ // Set up player
532
+ var player = createPlayer(3);
533
+
534
+ // Seek to middle of interval and reverse
535
+ player.currentTime = 2;
536
+ player.reverse();
537
+
538
+ // Check state
539
+ assert_equals(player.currentTime, 2, "currentTime after reversing");
540
+ assert_false(player.finished, "Finished state after reversing");
541
+ assert_equals(player.playbackRate, -1, "Playback rate after reversing");
542
+ player.finish();
543
+ assert_equals(player.currentTime, 0, "currentTime after finishing");
544
+ assert_true(player.finished, "Finished state after finishing");
545
+
546
+ // Then play again
547
+ player.play();
548
+ assert_equals(player.currentTime, 3, "currentTime after playing again");
549
+ assert_false(player.finished, "Finished state after playing again");
550
+
551
+ // Check if actually progresses
552
+ at(0.2, function() {
553
+ assert_equals(player.currentTime, 2.8, "Current time after playing for a while");
554
+ });
555
+ }, "play() on a finished reversed player");
556
+
557
+ // Test player.play() seeking to start when behind the source content.
558
+ timing_test(function() {
559
+ // Set up player to start in 2s
560
+ var player = createPlayer(3);
561
+ player.startTime = 2;
562
+
563
+ // Check it is waiting to start
564
+ assert_equals(player.currentTime, -2, "currentTime while waiting");
565
+ assert_false(player.finished, "Finished state while waiting");
566
+
567
+ // Call play()
568
+ player.play();
569
+ assert_equals(player.currentTime, 0, "currentTime after calling play()");
570
+ assert_false(player.finished, "Finished state after calling play()");
571
+
572
+ // Check it really is playing
573
+ at(0.5, function() {
574
+ assert_equals(player.currentTime, 0.5, "Current time after playing for a while");
575
+ });
576
+ }, "play() on player waiting to start kick-starts it");
577
+
578
+ // Test seeking a player to the start of its animation.
579
+ timing_test(function() {
580
+ // Set up player to start in 2s
581
+ var player = createPlayer(3);
582
+ player.startTime = 2;
583
+
584
+ // Check it is waiting to start
585
+ assert_equals(player.currentTime, -2, "currentTime while waiting");
586
+ assert_false(player.finished, "Finished state while waiting");
587
+
588
+ // Set currentTime = 0
589
+ player.currentTime = 0;
590
+ assert_equals(player.currentTime, 0, "currentTime after setting currentTime = 0");
591
+ assert_false(player.finished, "Finished state after setting currentTime = 0");
592
+
593
+ // Check it is playing
594
+ at(0.5, function() {
595
+ assert_equals(player.currentTime, 0.5, "currentTime after waiting a while");
596
+ assert_false(player.finished, "Finished state after waiting a while");
597
+ });
598
+ }, "currentTime = 0 on player waiting to start is ok");
599
+
600
+ // Test player becoming unbounded after source content is extended.
601
+ timing_test(function() {
602
+ var player = createPlayer(3);
603
+
604
+ player.currentTime = 4;
605
+ assert_equals(player.currentTime, 4, "currentTime after setting currentTime = 4");
606
+ assert_true(player.finished, "Finished state after setting currentTime = 4");
607
+
608
+ // Check it is NOT playing
609
+ at(0.2, function() {
610
+ assert_equals(player.currentTime, 4, "currentTime after waiting a while");
611
+
612
+ // Extend source
613
+ player.source.timing.duration = 5;
614
+ assert_equals(player.currentTime, 4, "currentTime after extending source");
615
+ assert_false(player.finished, "Finished state after extending source");
616
+
617
+ // Check it IS playing
618
+ at(0.2, function() {
619
+ assert_equals(player.currentTime, 4.2, "currentTime after waiting a while again");
620
+ });
621
+ });
622
+ }, "Extending source unblocks player (seek past end)");
623
+
624
+ // Test player ending normally and becoming unbounded after source content is extended.
625
+ timing_test(function() {
626
+ var player = createPlayer(3);
627
+
628
+ // Set currentTime to just before the end
629
+ player.currentTime = 2.9;
630
+ assert_false(player.finished, "Finished state just before ending");
631
+
632
+ // Play to end
633
+ at(0.2, function() {
634
+ assert_equals(player.currentTime, 3, "currentTime after ending normally");
635
+ assert_true(player.finished, "Finished state after ending normally");
636
+
637
+ // Extend source
638
+ player.source.timing.duration = 5;
639
+ assert_equals(player.currentTime, 3.0, "currentTime after extending source");
640
+ assert_false(player.finished, "Finished state after extending source");
641
+
642
+ // Check it is playing
643
+ at(0.2, function() {
644
+ assert_equals(player.currentTime, 3.2, "currentTime after waiting a while again");
645
+ });
646
+ });
647
+ }, "Extending source unblocks player (end normally)");
648
+
649
+ // Test player becomes bounded after source content is shortened.
650
+ timing_test(function() {
651
+ var player = createPlayer(3);
652
+
653
+ // Set currentTime to just before the end
654
+ player.currentTime = 2;
655
+ assert_equals(player.currentTime, 2.0, "currentTime before shortening");
656
+ assert_false(player.finished, "Finished state before shortening");
657
+
658
+ // Shorten source
659
+ player.source.timing.duration = 1;
660
+ assert_equals(player.currentTime, 2.0, "currentTime after shortening");
661
+ assert_true(player.finished, "Finished state after shortening");
662
+
663
+ // Check it is not playing
664
+ at(0.2, function() {
665
+ assert_equals(player.currentTime, 2.0, "currentTime after shortening");
666
+ });
667
+ }, "Shortening source blocks player");
668
+
669
+ // Test playing player becomes bounded after source content is shortened.
670
+ timing_test(function() {
671
+ var player = createPlayer(3);
672
+
673
+ // Set currentTime to midway
674
+ player.currentTime = 1.5;
675
+ assert_equals(player.currentTime, 1.5, "currentTime before shortening");
676
+ assert_false(player.finished, "Finished state after seeking");
677
+
678
+ // Let it play for a while
679
+ at(0.2, function() {
680
+ assert_equals(player.currentTime, 1.7, "currentTime before shortening");
681
+ assert_false(player.finished, "Finished state before shortening");
682
+
683
+ // Shorten source
684
+ player.source.timing.duration = 1;
685
+ assert_equals(player.currentTime, 1.7, "currentTime after shortening");
686
+ assert_true(player.finished, "Finished state after shortening");
687
+ });
688
+ }, "Shortening source blocks player when playing");
689
+
690
+ // Test reversed player does not become bounded after its source content is shortened.
691
+ timing_test(function() {
692
+ var player = createPlayer(3);
693
+
694
+ // Set currentTime to just before the end
695
+ player.currentTime = 2;
696
+ player.reverse();
697
+ assert_equals(player.currentTime, 2.0, "currentTime before shortening");
698
+ assert_false(player.finished, "Finished state before shortening");
699
+
700
+ // Shorten source
701
+ player.source.timing.duration = 1;
702
+ assert_equals(player.currentTime, 2.0, "currentTime after shortening");
703
+ assert_false(player.finished, "Finished state after shortening");
704
+
705
+ // Check it is playing
706
+ at(0.2, function() {
707
+ assert_equals(player.currentTime, 1.8, "currentTime after shortening");
708
+ });
709
+ }, "Shortening source does not block in reverse");
710
+
711
+ // Test player becoming unbounded after duration 0 source content is extended.
712
+ timing_test(function() {
713
+ // Add empty animation
714
+ var player = createPlayer(0);
715
+
716
+ // Check we don't progress
717
+ assert_equals(player.currentTime, 0, "currentTime before adding content");
718
+ assert_true(player.finished, "Finished state before adding content");
719
+
720
+ // Wait and check we don't progress
721
+ at(0.2, function() {
722
+ assert_equals(player.currentTime, 0, "currentTime after waiting");
723
+ assert_true(player.finished, "Finished state after waiting");
724
+
725
+ // "Add" content
726
+ player.source.timing.duration = 3;
727
+
728
+ // We should pick up from 0, not jump 0.2s in
729
+ assert_equals(player.currentTime, 0, "currentTime after extending");
730
+ assert_false(player.finished, "Finished state after extending");
731
+
732
+ // Wait and check
733
+ at(0.2, function() {
734
+ assert_equals(player.currentTime, 0.2, "currentTime after extending and waiting");
735
+ });
736
+ });
737
+ }, "Async add content");
738
+
739
+ // Test negative player playback rate with negative current time.
740
+ timing_test(function() {
741
+ var player = createPlayer(3);
742
+
743
+ // Set a negative time and let it play for a while
744
+ player.currentTime = -1;
745
+ at(0.2, function() {
746
+ assert_equals(player.currentTime, -0.8, "currentTime after waiting");
747
+ assert_false(player.finished, "Finished state after waiting");
748
+
749
+ // Reverse
750
+ player.playbackRate = -1;
751
+ assert_equals(player.currentTime, -0.8, "currentTime after reversing");
752
+ assert_true(player.finished, "Finished state after reversing");
753
+ });
754
+ }, "Setting negative playback rate in negative space");
755
+
756
+ // Test reversed player becoming bounded when start of animation is reached.
757
+ timing_test(function() {
758
+ var player = createPlayer(3);
759
+
760
+ // Seek to just before end
761
+ player.reverse();
762
+ player.currentTime = 0.1;
763
+
764
+ // Check state of player
765
+ assert_equals(player.currentTime, 0.1, "Current time just before end");
766
+ assert_false(player.paused, "Paused state just before end");
767
+ assert_false(player.finished, "Finished state just before end");
768
+
769
+ // Check player after finishing
770
+ at(0.2, function() {
771
+ assert_equals(player.currentTime, 0, "Current time when limited");
772
+ assert_false(player.paused, "Paused state after ending");
773
+ assert_true(player.finished, "Finished state after ending");
774
+ });
775
+ }, "Limiting at start");
776
+
777
+ // Test the floating point accuracy of seeking a player.
778
+ test(function() {
779
+ var player = createPlayer(3);
780
+ // Setting a high playbackRate has caused the reported currentTime to differ
781
+ // from what was set in previous implementations of AnimationPlayer.
782
+ player.playbackRate = 123456;
783
+ player.currentTime = 1.618;
784
+ assert_equals(player.currentTime, 1.618, "currentTime after seeking to fractional time");
785
+ }, "currentTime preserves floating point accuracy after seeking");
786
+ </script>