Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Add all

  • Loading branch information...
commit 96a4bd69aa0b90533e9f9786de3029d57e8dd5b3 1 parent f8899bd
Penn Su authored
Showing with 6,944 additions and 2,290 deletions.
  1. +6 −3 bower.json
  2. +3 −0  www/index.html
  3. +5 −5 www/lib/angular-animate/.bower.json
  4. +1 −1  www/lib/angular-animate/angular-animate.js
  5. +1 −1  www/lib/angular-animate/angular-animate.min.js
  6. +2 −2 www/lib/angular-animate/bower.json
  7. +5 −5 www/lib/angular-sanitize/.bower.json
  8. +1 −1  www/lib/angular-sanitize/angular-sanitize.js
  9. +1 −1  www/lib/angular-sanitize/angular-sanitize.min.js
  10. +2 −2 www/lib/angular-sanitize/bower.json
  11. +5 −5 www/lib/angular/.bower.json
  12. +142 −82 www/lib/angular/angular.js
  13. +209 −208 www/lib/angular/angular.min.js
  14. BIN  www/lib/angular/angular.min.js.gzip
  15. +3 −3 www/lib/angular/angular.min.js.map
  16. +1 −1  www/lib/angular/bower.json
  17. +5 −6 www/lib/context-free-parser/.bower.json
  18. +2 −1  www/lib/context-free-parser/bower.json
  19. +6 −7 www/lib/core-ajax/.bower.json
  20. +1 −1  www/lib/core-ajax/README.md
  21. +1 −1  www/lib/core-ajax/bower.json
  22. +19 −0 www/lib/core-animated-pages/.bower.json
  23. +4 −0 www/lib/core-animated-pages/README.md
  24. +9 −0 www/lib/core-animated-pages/bower.json
  25. +18 −0 www/lib/core-animated-pages/core-animated-pages.css
  26. +414 −0 www/lib/core-animated-pages/core-animated-pages.html
  27. +14 −0 www/lib/core-animated-pages/demo.html
  28. +104 −0 www/lib/core-animated-pages/demos/grid.html
  29. +117 −0 www/lib/core-animated-pages/demos/list.html
  30. +173 −0 www/lib/core-animated-pages/demos/music.html
  31. +104 −0 www/lib/core-animated-pages/demos/nested-animated-pages.html
  32. +103 −0 www/lib/core-animated-pages/demos/nested.html
  33. +247 −0 www/lib/core-animated-pages/demos/news.html
  34. BIN  www/lib/core-animated-pages/demos/quiz1-intro.png
  35. +254 −0 www/lib/core-animated-pages/demos/quiz1.html
  36. +133 −0 www/lib/core-animated-pages/demos/shadow.html
  37. +89 −0 www/lib/core-animated-pages/demos/simple.html
  38. +23 −0 www/lib/core-animated-pages/index.html
  39. +29 −0 www/lib/core-animated-pages/metadata.html
  40. +138 −0 www/lib/core-animated-pages/transitions/cascade-transition.html
  41. +174 −0 www/lib/core-animated-pages/transitions/core-transition-pages.html
  42. +173 −0 www/lib/core-animated-pages/transitions/cross-fade.html
  43. +12 −0 www/lib/core-animated-pages/transitions/hero-transition.css
  44. +267 −0 www/lib/core-animated-pages/transitions/hero-transition.html
  45. +58 −0 www/lib/core-animated-pages/transitions/list-cascade.html
  46. +37 −0 www/lib/core-animated-pages/transitions/scale-up.html
  47. +55 −0 www/lib/core-animated-pages/transitions/slide-down.html
  48. +31 −0 www/lib/core-animated-pages/transitions/slide-from-bottom.html
  49. +35 −0 www/lib/core-animated-pages/transitions/slide-from-right.html
  50. +82 −0 www/lib/core-animated-pages/transitions/slide-up.html
  51. +101 −0 www/lib/core-animated-pages/transitions/tile-cascade.html
  52. +18 −0 www/lib/core-animation/.bower.json
  53. +4 −0 www/lib/core-animation/README.md
  54. +8 −0 www/lib/core-animation/bower.json
  55. +169 −0 www/lib/core-animation/core-animation-group.html
  56. +524 −0 www/lib/core-animation/core-animation.html
  57. +140 −0 www/lib/core-animation/demo.html
  58. +23 −0 www/lib/core-animation/index.html
  59. +1 −0  www/lib/core-animation/web-animations.html
  60. +6 −7 www/lib/core-collapse/.bower.json
  61. +1 −1  www/lib/core-collapse/README.md
  62. +1 −1  www/lib/core-collapse/bower.json
  63. +7 −0 www/lib/core-collapse/core-collapse.html
  64. +8 −3 www/lib/core-collapse/demo.html
  65. +7 −8 www/lib/core-component-page/.bower.json
  66. +1 −1  www/lib/core-component-page/README.md
  67. +8 −8 www/lib/core-component-page/bower.json
  68. +16 −17 www/lib/core-doc-viewer/.bower.json
  69. +1 −1  www/lib/core-doc-viewer/README.md
  70. +12 −12 www/lib/core-doc-viewer/bower.json
  71. +6 −7 www/lib/core-docs/.bower.json
  72. +1 −1  www/lib/core-docs/README.md
  73. +1 −1  www/lib/core-docs/bower.json
  74. +4 −5 www/lib/core-drag-drop/.bower.json
  75. +7 −8 www/lib/core-drawer-panel/.bower.json
  76. +1 −1  www/lib/core-drawer-panel/README.md
  77. +2 −2 www/lib/core-drawer-panel/bower.json
  78. +7 −0 www/lib/core-drawer-panel/core-drawer-panel.html
  79. +6 −1 www/lib/core-drawer-panel/demo.html
  80. +2 −2 www/lib/core-drawer-panel/metadata.html
  81. +46 −44 www/lib/core-elements/.bower.json
  82. +1 −1  www/lib/core-elements/README.md
  83. +41 −37 www/lib/core-elements/bower.json
  84. BIN  www/lib/core-elements/code.png
  85. +5 −3 www/lib/core-elements/core-elements.html
  86. +40 −22 www/lib/core-elements/demo.html
  87. +0 −112 www/lib/core-elements/demos/core-drawer-panel.html
  88. +2 −2 www/lib/core-elements/metadata.html
  89. +6 −7 www/lib/core-field/.bower.json
  90. +1 −1  www/lib/core-field/README.md
  91. +1 −1  www/lib/core-field/bower.json
  92. +6 −7 www/lib/core-header-panel/.bower.json
  93. +1 −1  www/lib/core-header-panel/README.md
  94. +1 −1  www/lib/core-header-panel/bower.json
  95. +25 −1 www/lib/core-header-panel/core-header-panel.html
  96. +6 −7 www/lib/core-icon-button/.bower.json
  97. +1 −1  www/lib/core-icon-button/README.md
  98. +2 −2 www/lib/core-icon-button/bower.json
  99. +0 −1  www/lib/core-icon-button/core-icon-button.html
  100. +7 −8 www/lib/core-icon/.bower.json
  101. +1 −1  www/lib/core-icon/README.md
  102. +3 −3 www/lib/core-icon/bower.json
  103. +1 −0  www/lib/core-icon/core-icon.css
  104. +1 −1  www/lib/core-icon/core-icon.html
  105. +8 −9 www/lib/core-icons/.bower.json
  106. +1 −1  www/lib/core-icons/README.md
  107. +4 −4 www/lib/core-icons/bower.json
  108. +8 −4 www/lib/core-icons/demo.html
  109. +7 −8 www/lib/core-iconset-svg/.bower.json
  110. +1 −1  www/lib/core-iconset-svg/README.md
  111. +3 −3 www/lib/core-iconset-svg/bower.json
  112. +7 −8 www/lib/core-iconset/.bower.json
  113. +1 −1  www/lib/core-iconset/README.md
  114. +3 −3 www/lib/core-iconset/bower.json
  115. +2 −2 www/lib/core-iconset/core-iconset.html
  116. +6 −7 www/lib/core-input/.bower.json
  117. +1 −1  www/lib/core-input/bower.json
  118. +192 −135 www/lib/core-input/core-input.html
  119. +17 −13 www/lib/core-input/demo.html
  120. +7 −8 www/lib/core-item/.bower.json
  121. +1 −1  www/lib/core-item/README.md
  122. +2 −2 www/lib/core-item/bower.json
  123. +1 −1  www/lib/core-item/core-item.css
  124. +6 −7 www/lib/core-layout-grid/.bower.json
  125. +1 −1  www/lib/core-layout-grid/README.md
  126. +1 −1  www/lib/core-layout-grid/bower.json
  127. +2 −2 www/lib/core-layout-grid/metadata.html
  128. +6 −7 www/lib/core-layout-trbl/.bower.json
  129. +1 −1  www/lib/core-layout-trbl/README.md
  130. +1 −1  www/lib/core-layout-trbl/bower.json
  131. +6 −7 www/lib/core-layout/.bower.json
  132. +1 −1  www/lib/core-layout/README.md
  133. +2 −2 www/lib/core-layout/bower.json
  134. +7 −8 www/lib/core-list/.bower.json
  135. +1 −1  www/lib/core-list/README.md
  136. +8 −8 www/lib/core-list/bower.json
  137. +1 −1  www/lib/core-list/core-list.html
  138. +6 −7 www/lib/core-localstorage/.bower.json
  139. +1 −1  www/lib/core-localstorage/README.md
  140. +2 −2 www/lib/core-localstorage/bower.json
  141. +6 −7 www/lib/core-media-query/.bower.json
  142. +1 −1  www/lib/core-media-query/README.md
  143. +2 −2 www/lib/core-media-query/bower.json
  144. +10 −11 www/lib/core-menu-button/.bower.json
  145. +6 −6 www/lib/core-menu-button/bower.json
  146. +3 −3 www/lib/core-menu-button/core-menu-button.html
  147. +0 −1  www/lib/core-menu-button/demo.html
  148. +12 −8 www/lib/core-menu-button/metadata.html
  149. +8 −9 www/lib/core-menu/.bower.json
  150. +1 −1  www/lib/core-menu/README.md
  151. +4 −4 www/lib/core-menu/bower.json
  152. +2 −2 www/lib/core-menu/core-submenu.html
  153. +6 −7 www/lib/core-meta/.bower.json
  154. +1 −1  www/lib/core-meta/README.md
  155. +1 −1  www/lib/core-meta/bower.json
  156. +7 −8 www/lib/core-overlay/.bower.json
  157. +1 −1  www/lib/core-overlay/README.md
  158. +3 −3 www/lib/core-overlay/bower.json
  159. +1 −1  www/lib/core-overlay/core-overlay.html
  160. +12 −3 www/lib/core-overlay/demo.html
  161. +6 −7 www/lib/core-pages/.bower.json
  162. +1 −1  www/lib/core-pages/README.md
  163. +1 −1  www/lib/core-pages/bower.json
  164. +6 −7 www/lib/core-range/.bower.json
  165. +1 −1  www/lib/core-range/bower.json
  166. +9 −10 www/lib/core-scaffold/.bower.json
  167. +1 −1  www/lib/core-scaffold/README.md
  168. +5 −5 www/lib/core-scaffold/bower.json
  169. +23 −18 www/lib/core-scaffold/core-scaffold.html
  170. +22 −2 www/lib/core-scaffold/demo.html
  171. +1 −1  www/lib/core-scaffold/metadata.html
  172. +10 −11 www/lib/core-scroll-header-panel/.bower.json
  173. +1 −1  www/lib/core-scroll-header-panel/README.md
  174. +5 −5 www/lib/core-scroll-header-panel/bower.json
  175. +1 −0  www/lib/core-scroll-header-panel/core-scroll-header-panel.css
  176. +8 −9 www/lib/core-scroll-header-panel/core-scroll-header-panel.html
  177. +90 −11 www/lib/core-scroll-header-panel/demo.html
  178. +5 −0 www/lib/core-scroll-header-panel/demos/demo1.html
  179. +5 −0 www/lib/core-scroll-header-panel/demos/demo2.html
  180. +9 −0 www/lib/core-scroll-header-panel/demos/demo3.html
  181. +6 −0 www/lib/core-scroll-header-panel/demos/demo4.html
  182. +6 −0 www/lib/core-scroll-header-panel/demos/demo5.html
  183. +6 −0 www/lib/core-scroll-header-panel/demos/demo6.html
  184. +6 −0 www/lib/core-scroll-header-panel/demos/demo7.html
  185. +6 −0 www/lib/core-scroll-header-panel/demos/demo8.html
  186. +9 −1 www/lib/core-scroll-header-panel/demos/demo9.html
  187. +32 −0 www/lib/core-scroll-header-panel/metadata.html
  188. +6 −7 www/lib/core-selection/.bower.json
  189. +1 −1  www/lib/core-selection/README.md
  190. +1 −1  www/lib/core-selection/bower.json
  191. +1 −1  www/lib/core-selection/core-selection.html
  192. +7 −8 www/lib/core-selector/.bower.json
  193. +1 −1  www/lib/core-selector/README.md
  194. +2 −2 www/lib/core-selector/bower.json
  195. +3 −3 www/lib/core-selector/core-selector.html
  196. +6 −7 www/lib/core-shared-lib/.bower.json
  197. +1 −1  www/lib/core-shared-lib/README.md
  198. +1 −1  www/lib/core-shared-lib/bower.json
  199. +17 −0 www/lib/core-signals/.bower.json
  200. +4 −0 www/lib/core-signals/README.md
  201. +7 −0 www/lib/core-signals/bower.json
  202. +84 −0 www/lib/core-signals/core-signals.html
  203. +53 −0 www/lib/core-signals/demo.html
  204. +23 −0 www/lib/core-signals/index.html
  205. +6 −7 www/lib/core-splitter/.bower.json
  206. +1 −1  www/lib/core-splitter/README.md
  207. +1 −1  www/lib/core-splitter/bower.json
  208. +3 −3 www/lib/core-splitter/core-splitter.css
  209. +70 −16 www/lib/core-splitter/core-splitter.html
  210. +3 −6 www/lib/core-splitter/demo.html
  211. +6 −7 www/lib/core-style/.bower.json
  212. +1 −1  www/lib/core-style/README.md
  213. +1 −1  www/lib/core-style/bower.json
  214. +9 −6 www/lib/core-tests/.bower.json
  215. +1 −1  www/lib/core-tests/README.md
  216. +7 −0 www/lib/core-tests/bower.json
  217. +2 −2 www/lib/core-tests/tests/core-ajax.html
  218. +3 −2 www/lib/core-tests/tests/core-collapse.html
  219. +2 −2 www/lib/core-tests/tests/core-localstorage.html
  220. +2 −2 www/lib/core-tests/tests/core-selection-multi.html
  221. +2 −2 www/lib/core-tests/tests/core-selection.html
  222. +3 −2 www/lib/core-tests/tests/core-selector-activate-event.html
  223. +3 −2 www/lib/core-tests/tests/core-selector-basic.html
  224. +3 −2 www/lib/core-tests/tests/core-selector-multi.html
  225. +2 −2 www/lib/core-tests/tests/core-shared-lib.html
  226. +2 −2 www/lib/core-tests/tests/tests.html
  227. +0 −79 www/lib/core-tests/tests/tools/chai/README.md
  228. +6 −7 www/lib/core-toolbar/.bower.json
  229. +1 −1  www/lib/core-toolbar/README.md
  230. +1 −1  www/lib/core-toolbar/bower.json
  231. +2 −0  www/lib/core-toolbar/core-toolbar.css
  232. +4 −4 www/lib/core-toolbar/core-toolbar.html
  233. +6 −7 www/lib/core-tooltip/.bower.json
  234. +1 −1  www/lib/core-tooltip/README.md
  235. +1 −1  www/lib/core-tooltip/bower.json
  236. +1 −2  www/lib/core-tooltip/demo.html
  237. +7 −8 www/lib/core-transition/.bower.json
  238. +2 −2 www/lib/core-transition/bower.json
  239. +4 −5 www/lib/font-roboto/.bower.json
  240. +6 −7 www/lib/highlightjs-element/.bower.json
  241. +1 −1  www/lib/highlightjs-element/bower.json
  242. +6 −7 www/lib/marked-element/.bower.json
  243. +1 −1  www/lib/marked-element/bower.json
  244. +10 −11 www/lib/paper-button/.bower.json
  245. +6 −6 www/lib/paper-button/bower.json
  246. +33 −70 www/lib/paper-button/demo.html
  247. +136 −0 www/lib/paper-button/demo2.html
  248. +1 −1  www/lib/paper-button/paper-button.html
  249. +7 −8 www/lib/paper-checkbox/.bower.json
  250. +2 −2 www/lib/paper-checkbox/bower.json
  251. +3 −3 www/lib/paper-checkbox/demo.html
  252. +12 −8 www/lib/paper-checkbox/paper-checkbox.css
  253. +9 −10 www/lib/paper-dialog/.bower.json
  254. +5 −5 www/lib/paper-dialog/bower.json
  255. +3 −6 www/lib/paper-dialog/demo.html
  256. +0 −11 www/lib/paper-dialog/metadata.html
  257. +1 −0  www/lib/paper-dialog/paper-dialog.css
  258. +73 −4 www/lib/paper-dialog/paper-dialog.html
  259. +28 −26 www/lib/paper-elements/.bower.json
  260. +1 −1  www/lib/paper-elements/README.md
  261. +23 −19 www/lib/paper-elements/bower.json
  262. BIN  www/lib/paper-elements/code.png
  263. +28 −69 www/lib/paper-elements/demo.html
  264. +0 −96 www/lib/paper-elements/demos/core-header-panel/demo1.html
  265. +0 −93 www/lib/paper-elements/demos/core-header-panel/demo2.html
  266. +0 −94 www/lib/paper-elements/demos/core-header-panel/demo3.html
  267. +0 −94 www/lib/paper-elements/demos/core-header-panel/demo4.html
  268. +11 −8 www/lib/paper-elements/demos/core-toolbar.html
  269. +3 −0  www/lib/paper-elements/metadata.html
  270. +35 −0 www/lib/paper-elements/paper-elements.html
  271. +7 −8 www/lib/paper-fab/.bower.json
  272. +2 −2 www/lib/paper-fab/bower.json
  273. +22 −73 www/lib/paper-fab/demo.html
  274. +103 −0 www/lib/paper-fab/demo2.html
  275. +18 −0 www/lib/paper-fab/metadata.html
  276. +4 −13 www/lib/paper-fab/paper-fab.html
  277. +6 −7 www/lib/paper-focusable/.bower.json
  278. +2 −2 www/lib/paper-focusable/bower.json
  279. +155 −0 www/lib/paper-focusable/demo.html
  280. +24 −18 www/lib/paper-focusable/paper-focusable.html
  281. +8 −8 www/lib/paper-icon-button/.bower.json
  282. +1 −1  www/lib/paper-icon-button/README.md
  283. +4 −3 www/lib/paper-icon-button/bower.json
  284. +9 −6 www/lib/paper-icon-button/demo.html
  285. +12 −0 www/lib/paper-icon-button/metadata.html
  286. +32 −24 www/lib/paper-icon-button/paper-icon-button.html
  287. +7 −8 www/lib/paper-input/.bower.json
  288. +2 −2 www/lib/paper-input/bower.json
  289. +54 −99 www/lib/paper-input/demo.html
  290. +114 −0 www/lib/paper-input/demo2.html
  291. +9 −4 www/lib/paper-input/paper-input.css
  292. +4 −1 www/lib/paper-input/paper-input.html
  293. +19 −0 www/lib/paper-item/.bower.json
  294. +4 −0 www/lib/paper-item/README.md
  295. +9 −0 www/lib/paper-item/bower.json
  296. +35 −0 www/lib/paper-item/demo.html
  297. +23 −0 www/lib/paper-item/index.html
  298. +14 −0 www/lib/paper-item/metadata.html
  299. +25 −0 www/lib/paper-item/paper-item.css
  300. +83 −0 www/lib/paper-item/paper-item.html
Sorry, we could not display the entire diff because too many files (607) changed.
View
9 bower.json
@@ -10,10 +10,13 @@
"angularfire": "~0.7.1",
"moment": "~2.7.0",
"polymer": "Polymer/polymer#~0.3.3",
- "core-elements": "Polymer/core-elements#~0.3.3",
- "paper-elements": "Polymer/paper-elements#~0.3.3"
+ "core-elements": "Polymer/core-elements#master",
+ "paper-elements": "Polymer/paper-elements#master"
},
"resolutions": {
- "firebase-simple-login": "~1.6.1"
+ "firebase-simple-login": "~1.6.1",
+ "polymer": "master",
+ "platform": "master",
+ "core-component-page": "master"
}
}
View
3  www/index.html
@@ -23,6 +23,9 @@
<script src="lib/platform/platform.js"></script>
<script src="lib/polymer/polymer.js"></script>
+ <link rel="import" href="lib/core-elements/core-elements.html">
+ <link rel="import" href="lib/paper-elements/paper-elements.html">
+
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
View
10 www/lib/angular-animate/.bower.json
@@ -1,16 +1,16 @@
{
"name": "angular-animate",
- "version": "1.2.18",
+ "version": "1.2.19",
"main": "./angular-animate.js",
"dependencies": {
- "angular": "1.2.18"
+ "angular": "1.2.19"
},
"homepage": "https://github.com/angular/bower-angular-animate",
- "_release": "1.2.18",
+ "_release": "1.2.19",
"_resolution": {
"type": "version",
- "tag": "v1.2.18",
- "commit": "cd5a97b990643e831802256cbfd3c39f0372fd3b"
+ "tag": "v1.2.19",
+ "commit": "d9347fd5a2424d116de0b6f60634dd7db998abb5"
},
"_source": "git://github.com/angular/bower-angular-animate.git",
"_target": "~1.2.17",
View
2  www/lib/angular-animate/angular-animate.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.18
+ * @license AngularJS v1.2.19
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
View
2  www/lib/angular-animate/angular-animate.min.js
@@ -1,5 +1,5 @@
/*
- AngularJS v1.2.18
+ AngularJS v1.2.19
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
View
4 www/lib/angular-animate/bower.json
@@ -1,8 +1,8 @@
{
"name": "angular-animate",
- "version": "1.2.18",
+ "version": "1.2.19",
"main": "./angular-animate.js",
"dependencies": {
- "angular": "1.2.18"
+ "angular": "1.2.19"
}
}
View
10 www/lib/angular-sanitize/.bower.json
@@ -1,16 +1,16 @@
{
"name": "angular-sanitize",
- "version": "1.2.18",
+ "version": "1.2.19",
"main": "./angular-sanitize.js",
"dependencies": {
- "angular": "1.2.18"
+ "angular": "1.2.19"
},
"homepage": "https://github.com/angular/bower-angular-sanitize",
- "_release": "1.2.18",
+ "_release": "1.2.19",
"_resolution": {
"type": "version",
- "tag": "v1.2.18",
- "commit": "8b012cfe691a5e7bc95de08e764595f7dc7ee223"
+ "tag": "v1.2.19",
+ "commit": "47d0c2ebf176af4a9318192b95f71807d492a148"
},
"_source": "git://github.com/angular/bower-angular-sanitize.git",
"_target": "~1.2.17",
View
2  www/lib/angular-sanitize/angular-sanitize.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.18
+ * @license AngularJS v1.2.19
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
View
2  www/lib/angular-sanitize/angular-sanitize.min.js
@@ -1,5 +1,5 @@
/*
- AngularJS v1.2.18
+ AngularJS v1.2.19
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
View
4 www/lib/angular-sanitize/bower.json
@@ -1,8 +1,8 @@
{
"name": "angular-sanitize",
- "version": "1.2.18",
+ "version": "1.2.19",
"main": "./angular-sanitize.js",
"dependencies": {
- "angular": "1.2.18"
+ "angular": "1.2.19"
}
}
View
10 www/lib/angular/.bower.json
@@ -1,16 +1,16 @@
{
"name": "angular",
- "version": "1.2.18",
+ "version": "1.2.19",
"main": "./angular.js",
"dependencies": {},
"homepage": "https://github.com/angular/bower-angular",
- "_release": "1.2.18",
+ "_release": "1.2.19",
"_resolution": {
"type": "version",
- "tag": "v1.2.18",
- "commit": "0ca814f33e56902d1500e4d5a6742d09f089b3af"
+ "tag": "v1.2.19",
+ "commit": "2e1f8c4614d514b2e522c996d24f05a823b46936"
},
"_source": "git://github.com/angular/bower-angular.git",
- "_target": "~1.2.17",
+ "_target": ">= 1.0.8",
"_originalSource": "angular"
}
View
224 www/lib/angular/angular.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.18
+ * @license AngularJS v1.2.19
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
@@ -68,7 +68,7 @@ function minErr(module) {
return match;
});
- message = message + '\nhttp://errors.angularjs.org/1.2.18/' +
+ message = message + '\nhttp://errors.angularjs.org/1.2.19/' +
(module ? module + '/' : '') + code;
for (i = 2; i < arguments.length; i++) {
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
@@ -92,6 +92,7 @@ function minErr(module) {
-angularModule,
-nodeName_,
-uid,
+ -VALIDITY_STATE_PROPERTY,
-lowercase,
-uppercase,
@@ -181,6 +182,10 @@ function minErr(module) {
* <div doc-module-components="ng"></div>
*/
+// The name of a form control's ValidityState property.
+// This is used so that it's possible for internal tests to create mock ValidityStates.
+var VALIDITY_STATE_PROPERTY = 'validity';
+
/**
* @ngdoc function
* @name angular.lowercase
@@ -1353,7 +1358,7 @@ function angularInit(element, bootstrap) {
*
* Angular will detect if it has been loaded into the browser more than once and only allow the
* first loaded script to be bootstrapped and will report a warning to the browser console for
- * each of the subsequent scripts. This prevents strange results in applications, where otherwise
+ * each of the subsequent scripts. This prevents strange results in applications, where otherwise
* multiple instances of Angular try to work on the DOM.
*
* <example name="multi-bootstrap" module="multi-bootstrap">
@@ -1483,7 +1488,7 @@ function assertArgFn(arg, name, acceptArrayAnnotation) {
}
assertArg(isFunction(arg), name, 'not a function, got ' +
- (arg && typeof arg == 'object' ? arg.constructor.name || 'Object' : typeof arg));
+ (arg && typeof arg === 'object' ? arg.constructor.name || 'Object' : typeof arg));
return arg;
}
@@ -1953,11 +1958,11 @@ function setupModuleLoader(window) {
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
*/
var version = {
- full: '1.2.18', // all of these placeholder strings will be replaced by grunt's
+ full: '1.2.19', // all of these placeholder strings will be replaced by grunt's
major: 1, // package task
minor: 2,
- dot: 18,
- codeName: 'ear-extendability'
+ dot: 19,
+ codeName: 'precognitive-flashbacks'
};
@@ -2179,8 +2184,9 @@ function publishExternalAPI(angular){
* @returns {Object} jQuery object.
*/
+JQLite.expando = 'ng339';
+
var jqCache = JQLite.cache = {},
- jqName = JQLite.expando = 'ng' + new Date().getTime(),
jqId = 1,
addEventListenerFn = (window.document.addEventListener
? function(element, type, fn) {element.addEventListener(type, fn, false);}
@@ -2390,7 +2396,7 @@ function jqLiteOff(element, type, fn, unsupported) {
}
function jqLiteRemoveData(element, name) {
- var expandoId = element[jqName],
+ var expandoId = element.ng339,
expandoStore = jqCache[expandoId];
if (expandoStore) {
@@ -2404,17 +2410,17 @@ function jqLiteRemoveData(element, name) {
jqLiteOff(element);
}
delete jqCache[expandoId];
- element[jqName] = undefined; // ie does not allow deletion of attributes on elements.
+ element.ng339 = undefined; // don't delete DOM expandos. IE and Chrome don't like it
}
}
function jqLiteExpandoStore(element, key, value) {
- var expandoId = element[jqName],
+ var expandoId = element.ng339,
expandoStore = jqCache[expandoId || -1];
if (isDefined(value)) {
if (!expandoStore) {
- element[jqName] = expandoId = jqNextId();
+ element.ng339 = expandoId = jqNextId();
expandoStore = jqCache[expandoId] = {};
}
expandoStore[key] = value;
@@ -3081,16 +3087,16 @@ forEach({
* @returns {string} hash string such that the same input will have the same hash string.
* The resulting string key is in 'type:hashKey' format.
*/
-function hashKey(obj) {
+function hashKey(obj, nextUidFn) {
var objType = typeof obj,
key;
- if (objType == 'object' && obj !== null) {
+ if (objType == 'function' || (objType == 'object' && obj !== null)) {
if (typeof (key = obj.$$hashKey) == 'function') {
// must invoke on object to keep the right this
key = obj.$$hashKey();
} else if (key === undefined) {
- key = obj.$$hashKey = nextUid();
+ key = obj.$$hashKey = (nextUidFn || nextUid)();
}
} else {
key = obj;
@@ -3102,7 +3108,13 @@ function hashKey(obj) {
/**
* HashMap which can use objects as keys
*/
-function HashMap(array){
+function HashMap(array, isolatedUid) {
+ if (isolatedUid) {
+ var uid = 0;
+ this.nextUid = function() {
+ return ++uid;
+ };
+ }
forEach(array, this.put, this);
}
HashMap.prototype = {
@@ -3112,7 +3124,7 @@ HashMap.prototype = {
* @param value value to store can be any type
*/
put: function(key, value) {
- this[hashKey(key)] = value;
+ this[hashKey(key, this.nextUid)] = value;
},
/**
@@ -3120,7 +3132,7 @@ HashMap.prototype = {
* @returns {Object} the value for the key
*/
get: function(key) {
- return this[hashKey(key)];
+ return this[hashKey(key, this.nextUid)];
},
/**
@@ -3128,7 +3140,7 @@ HashMap.prototype = {
* @param key
*/
remove: function(key) {
- var value = this[key = hashKey(key)];
+ var value = this[key = hashKey(key, this.nextUid)];
delete this[key];
return value;
}
@@ -3206,7 +3218,7 @@ function annotate(fn) {
argDecl,
last;
- if (typeof fn == 'function') {
+ if (typeof fn === 'function') {
if (!($inject = fn.$inject)) {
$inject = [];
if (fn.length) {
@@ -3419,7 +3431,7 @@ function annotate(fn) {
/**
- * @ngdoc object
+ * @ngdoc service
* @name $provide
*
* @description
@@ -3725,7 +3737,7 @@ function createInjector(modulesToLoad) {
var INSTANTIATING = {},
providerSuffix = 'Provider',
path = [],
- loadedModules = new HashMap(),
+ loadedModules = new HashMap([], true),
providerCache = {
$provide: {
provider: supportObject(provider),
@@ -3896,8 +3908,7 @@ function createInjector(modulesToLoad) {
: getService(key)
);
}
- if (!fn.$inject) {
- // this means that we must be an array.
+ if (isArray(fn)) {
fn = fn[length];
}
@@ -6078,7 +6089,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
directiveNormalize(nodeName_(node).toLowerCase()), 'E', maxPriority, ignoreDirective);
// iterate over the attributes
- for (var attr, name, nName, ngAttrName, value, nAttrs = node.attributes,
+ for (var attr, name, nName, ngAttrName, value, isNgAttr, nAttrs = node.attributes,
j = 0, jj = nAttrs && nAttrs.length; j < jj; j++) {
var attrStartName = false;
var attrEndName = false;
@@ -6086,9 +6097,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
attr = nAttrs[j];
if (!msie || msie >= 8 || attr.specified) {
name = attr.name;
+ value = trim(attr.value);
+
// support ngAttr attribute binding
ngAttrName = directiveNormalize(name);
- if (NG_ATTR_BINDING.test(ngAttrName)) {
+ if (isNgAttr = NG_ATTR_BINDING.test(ngAttrName)) {
name = snake_case(ngAttrName.substr(6), '-');
}
@@ -6101,9 +6114,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
nName = directiveNormalize(name.toLowerCase());
attrsMap[nName] = name;
- attrs[nName] = value = trim(attr.value);
- if (getBooleanAttrName(node, nName)) {
- attrs[nName] = true; // presence means true
+ if (isNgAttr || !attrs.hasOwnProperty(nName)) {
+ attrs[nName] = value;
+ if (getBooleanAttrName(node, nName)) {
+ attrs[nName] = true; // presence means true
+ }
}
addAttrInterpolateDirective(node, directives, value, nName);
addDirective(directives, nName, 'A', maxPriority, ignoreDirective, attrStartName,
@@ -7201,7 +7216,7 @@ function $ControllerProvider() {
instance = $injector.instantiate(expression, locals);
if (identifier) {
- if (!(locals && typeof locals.$scope == 'object')) {
+ if (!(locals && typeof locals.$scope === 'object')) {
throw minErr('$controller')('noscp',
"Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",
constructor || expression.name, identifier);
@@ -8403,7 +8418,8 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
// Safari respectively.
if (xhr && xhr.readyState == 4) {
var responseHeaders = null,
- response = null;
+ response = null,
+ statusText = '';
if(status !== ABORTED) {
responseHeaders = xhr.getAllResponseHeaders();
@@ -8413,11 +8429,17 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
response = ('response' in xhr) ? xhr.response : xhr.responseText;
}
+ // Accessing statusText on an aborted xhr object will
+ // throw an 'c00c023f error' in IE9 and lower, don't touch it.
+ if (!(status === ABORTED && msie < 10)) {
+ statusText = xhr.statusText;
+ }
+
completeRequest(callback,
status || xhr.status,
response,
responseHeaders,
- xhr.statusText || '');
+ statusText);
}
};
@@ -8951,7 +8973,7 @@ function $IntervalProvider() {
interval.cancel = function(promise) {
if (promise && promise.$$intervalId in intervals) {
intervals[promise.$$intervalId].reject('canceled');
- clearInterval(promise.$$intervalId);
+ $window.clearInterval(promise.$$intervalId);
delete intervals[promise.$$intervalId];
return true;
}
@@ -9585,7 +9607,7 @@ function $LocationProvider(){
html5Mode = false;
/**
- * @ngdoc property
+ * @ngdoc method
* @name $locationProvider#hashPrefix
* @description
* @param {string=} prefix Prefix for hash part (containing path and search)
@@ -9601,7 +9623,7 @@ function $LocationProvider(){
};
/**
- * @ngdoc property
+ * @ngdoc method
* @name $locationProvider#html5Mode
* @description
* @param {boolean=} mode Use HTML5 strategy if available.
@@ -9959,14 +9981,7 @@ var promiseWarning;
//
// As an example, consider the following Angular expression:
//
-// {}.toString.constructor(alert("evil JS code"))
-//
-// We want to prevent this type of access. For the sake of performance, during the lexing phase we
-// disallow any "dotted" access to any member named "constructor".
-//
-// For reflective calls (a[b]) we check that the value of the lookup is not the Function constructor
-// while evaluating the expression, which is a stronger but more expensive test. Since reflective
-// calls are expensive anyway, this is not such a big deal compared to static dereferencing.
+// {}.toString.constructor('alert("evil JS code")')
//
// This sandboxing technique is not perfect and doesn't aim to be. The goal is to prevent exploits
// against the expression language, but not to prevent exploits that were enabled by exposing
@@ -9974,17 +9989,19 @@ var promiseWarning;
// practice and therefore we are not even trying to protect against interaction with an object
// explicitly exposed in this way.
//
-// A developer could foil the name check by aliasing the Function constructor under a different
-// name on the scope.
-//
// In general, it is not possible to access a Window object from an angular expression unless a
// window or some DOM object that has a reference to window is published onto a Scope.
+// Similarly we prevent invocations of function known to be dangerous, as well as assignments to
+// native objects.
+
function ensureSafeMemberName(name, fullExpression) {
- if (name === "constructor") {
+ if (name === "__defineGetter__" || name === "__defineSetter__"
+ || name === "__lookupGetter__" || name === "__lookupSetter__"
+ || name === "__proto__") {
throw $parseMinErr('isecfld',
- 'Referencing "constructor" field in Angular expressions is disallowed! Expression: {0}',
- fullExpression);
+ 'Attempting to access a disallowed field in Angular expressions! '
+ +'Expression: {0}', fullExpression);
}
return name;
}
@@ -10006,11 +10023,34 @@ function ensureSafeObject(obj, fullExpression) {
throw $parseMinErr('isecdom',
'Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}',
fullExpression);
+ } else if (// block Object so that we can't get hold of dangerous Object.* methods
+ obj === Object) {
+ throw $parseMinErr('isecobj',
+ 'Referencing Object in Angular expressions is disallowed! Expression: {0}',
+ fullExpression);
}
}
return obj;
}
+var CALL = Function.prototype.call;
+var APPLY = Function.prototype.apply;
+var BIND = Function.prototype.bind;
+
+function ensureSafeFunction(obj, fullExpression) {
+ if (obj) {
+ if (obj.constructor === obj) {
+ throw $parseMinErr('isecfn',
+ 'Referencing Function in Angular expressions is disallowed! Expression: {0}',
+ fullExpression);
+ } else if (obj === CALL || obj === APPLY || (BIND && obj === BIND)) {
+ throw $parseMinErr('isecff',
+ 'Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}',
+ fullExpression);
+ }
+ }
+}
+
var OPERATORS = {
/* jshint bitwise : false */
'null':function(){return null;},
@@ -10645,6 +10685,7 @@ Parser.prototype = {
i = indexFn(self, locals),
v, p;
+ ensureSafeMemberName(i, parser.text);
if (!o) return undefined;
v = ensureSafeObject(o[i], parser.text);
if (v && v.then && parser.options.unwrapPromises) {
@@ -10687,7 +10728,7 @@ Parser.prototype = {
var fnPtr = fn(scope, locals, context) || noop;
ensureSafeObject(context, parser.text);
- ensureSafeObject(fnPtr, parser.text);
+ ensureSafeFunction(fnPtr, parser.text);
// IE stupidity! (IE doesn't have apply for some native functions)
var v = fnPtr.apply
@@ -10796,6 +10837,8 @@ function setter(obj, path, setValue, fullExp, options) {
}
}
key = ensureSafeMemberName(element.shift(), fullExp);
+ ensureSafeObject(obj, fullExp);
+ ensureSafeObject(obj[key], fullExp);
obj[key] = setValue;
return setValue;
}
@@ -11215,17 +11258,13 @@ function $ParseProvider() {
* var deferred = $q.defer();
*
* setTimeout(function() {
- * // since this fn executes async in a future turn of the event loop, we need to wrap
- * // our code into an $apply call so that the model changes are properly observed.
- * scope.$apply(function() {
- * deferred.notify('About to greet ' + name + '.');
- *
- * if (okToGreet(name)) {
- * deferred.resolve('Hello, ' + name + '!');
- * } else {
- * deferred.reject('Greeting ' + name + ' is not allowed.');
- * }
- * });
+ * deferred.notify('About to greet ' + name + '.');
+ *
+ * if (okToGreet(name)) {
+ * deferred.resolve('Hello, ' + name + '!');
+ * } else {
+ * deferred.reject('Greeting ' + name + ' is not allowed.');
+ * }
* }, 1000);
*
* return deferred.promise;
@@ -12387,7 +12426,7 @@ function $RootScopeProvider(){
if ((value = watch.get(current)) !== (last = watch.last) &&
!(watch.eq
? equals(value, last)
- : (typeof value == 'number' && typeof last == 'number'
+ : (typeof value === 'number' && typeof last === 'number'
&& isNaN(value) && isNaN(last)))) {
dirty = true;
lastDirtyWatch = watch;
@@ -13732,7 +13771,7 @@ function $SceProvider() {
/**
* @ngdoc method
- * @name $sce#parse
+ * @name $sce#parseAs
*
* @description
* Converts Angular {@link guide/expression expression} into a function. This is like {@link
@@ -14688,7 +14727,7 @@ function filterFilter() {
// jshint +W086
for (var key in expression) {
(function(path) {
- if (typeof expression[path] == 'undefined') return;
+ if (typeof expression[path] === 'undefined') return;
predicates.push(function(value) {
return search(path == '$' ? value : (value && value[path]), expression[path]);
});
@@ -14843,6 +14882,7 @@ function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
var match = numStr.match(/([\d\.]+)e(-?)(\d+)/);
if (match && match[2] == '-' && match[3] > fractionSize + 1) {
numStr = '0';
+ number = 0;
} else {
formatedText = numStr;
hasExponent = true;
@@ -14857,8 +14897,11 @@ function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
fractionSize = Math.min(Math.max(pattern.minFrac, fractionLen), pattern.maxFrac);
}
- var pow = Math.pow(10, fractionSize + 1);
- number = Math.floor(number * pow + 5) / pow;
+ // safely round numbers in JS without hitting imprecisions of floating-point arithmetics
+ // inspired by:
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
+ number = +(Math.round(+(number.toString() + 'e' + fractionSize)).toString() + 'e' + -fractionSize);
+
var fraction = ('' + number).split(DECIMAL_SEP);
var whole = fraction[0];
fraction = fraction[1] || '';
@@ -16360,7 +16403,7 @@ var ngFormDirective = formDirectiveFactory(true);
*/
var URL_REGEXP = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;
-var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-z0-9-]+(\.[a-z0-9-]+)*$/i;
+var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9-]+(\.[a-z0-9-]+)*$/i;
var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/;
var inputType = {
@@ -16786,15 +16829,29 @@ function validate(ctrl, validatorName, validity, value){
return validity ? value : undefined;
}
+function testFlags(validity, flags) {
+ var i, flag;
+ if (flags) {
+ for (i=0; i<flags.length; ++i) {
+ flag = flags[i];
+ if (validity[flag]) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
-function addNativeHtml5Validators(ctrl, validatorName, element) {
- var validity = element.prop('validity');
+// Pass validity so that behaviour can be mocked easier.
+function addNativeHtml5Validators(ctrl, validatorName, badFlags, ignoreFlags, validity) {
if (isObject(validity)) {
+ ctrl.$$hasNativeValidators = true;
var validator = function(value) {
// Don't overwrite previous validation, don't consider valueMissing to apply (ng-required can
// perform the required validation)
- if (!ctrl.$error[validatorName] && (validity.badInput || validity.customError ||
- validity.typeMismatch) && !validity.valueMissing) {
+ if (!ctrl.$error[validatorName] &&
+ !testFlags(validity, ignoreFlags) &&
+ testFlags(validity, badFlags)) {
ctrl.$setValidity(validatorName, false);
return;
}
@@ -16805,8 +16862,9 @@ function addNativeHtml5Validators(ctrl, validatorName, element) {
}
function textInputType(scope, element, attr, ctrl, $sniffer, $browser) {
- var validity = element.prop('validity');
+ var validity = element.prop(VALIDITY_STATE_PROPERTY);
var placeholder = element[0].placeholder, noevent = {};
+ ctrl.$$validityState = validity;
// In composition mode, users are still inputing intermediate text buffer,
// hold the listener until composition is done.
@@ -16844,11 +16902,11 @@ function textInputType(scope, element, attr, ctrl, $sniffer, $browser) {
value = trim(value);
}
- if (ctrl.$viewValue !== value ||
- // If the value is still empty/falsy, and there is no `required` error, run validators
- // again. This enables HTML5 constraint validation errors to affect Angular validation
- // even when the first character entered causes an error.
- (validity && value === '' && !validity.valueMissing)) {
+ // If a control is suffering from bad input, browsers discard its value, so it may be
+ // necessary to revalidate even if the control's value is the same empty value twice in
+ // a row.
+ var revalidate = validity && ctrl.$$hasNativeValidators;
+ if (ctrl.$viewValue !== value || (value === '' && revalidate)) {
if (scope.$$phase) {
ctrl.$setViewValue(value);
} else {
@@ -16954,6 +17012,8 @@ function textInputType(scope, element, attr, ctrl, $sniffer, $browser) {
}
}
+var numberBadFlags = ['badInput'];
+
function numberInputType(scope, element, attr, ctrl, $sniffer, $browser) {
textInputType(scope, element, attr, ctrl, $sniffer, $browser);
@@ -16968,7 +17028,7 @@ function numberInputType(scope, element, attr, ctrl, $sniffer, $browser) {
}
});
- addNativeHtml5Validators(ctrl, 'number', element);
+ addNativeHtml5Validators(ctrl, 'number', numberBadFlags, null, ctrl.$$validityState);
ctrl.$formatters.push(function(value) {
return ctrl.$isEmpty(value) ? '' : '' + value;
@@ -17450,7 +17510,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
* This method should be called by validators - i.e. the parser or formatter functions.
*
* @param {string} validationErrorKey Name of the validator. the `validationErrorKey` will assign
- * to `$error[validationErrorKey]=isValid` so that it is available for data-binding.
+ * to `$error[validationErrorKey]=!isValid` so that it is available for data-binding.
* The `validationErrorKey` should be in camelCase and will get converted into dash-case
* for class name. Example: `myError` will result in `ng-valid-my-error` and `ng-invalid-my-error`
* class and can be bound to as `{{someForm.someControl.$error.myError}}` .
@@ -19834,7 +19894,7 @@ var ngNonBindableDirective = ngDirective({ terminal: true, priority: 1000 });
* When one person, perhaps John, views the document, "John is viewing" will be shown.
* When three people view the document, no explicit number rule is found, so
* an offset of 2 is taken off 3, and Angular uses 1 to decide the plural category.
- * In this case, plural category 'one' is matched and "John, Marry and one other person are viewing"
+ * In this case, plural category 'one' is matched and "John, Mary and one other person are viewing"
* is shown.
*
* Note that when you specify offsets, you must provide explicit number rules for
@@ -20716,7 +20776,7 @@ var ngHideDirective = ['$animate', function($animate) {
<file name="protractor.js" type="protractor">
var colorSpan = element(by.css('span'));
- iit('should check ng-style', function() {
+ it('should check ng-style', function() {
expect(colorSpan.getCssValue('color')).toBe('rgba(0, 0, 0, 1)');
element(by.css('input[value=\'set color\']')).click();
expect(colorSpan.getCssValue('color')).toBe('rgba(255, 0, 0, 1)');
@@ -21609,7 +21669,7 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
// rather then the element.
(element = optionTemplate.clone())
.val(option.id)
- .attr('selected', option.selected)
+ .prop('selected', option.selected)
.text(option.label);
}
View
417 www/lib/angular/angular.min.js
209 additions, 208 deletions not shown
View
BIN  www/lib/angular/angular.min.js.gzip
Binary file not shown
View
6 www/lib/angular/angular.min.js.map
3 additions, 3 deletions not shown
View
2  www/lib/angular/bower.json
@@ -1,6 +1,6 @@
{
"name": "angular",
- "version": "1.2.18",
+ "version": "1.2.19",
"main": "./angular.js",
"dependencies": {
}
View
11 www/lib/context-free-parser/.bower.json
@@ -3,14 +3,13 @@
"private": true,
"dependencies": {},
"homepage": "https://github.com/Polymer/context-free-parser",
- "version": "0.3.3",
- "_release": "0.3.3",
+ "_release": "ffc44a4e3e",
"_resolution": {
- "type": "version",
- "tag": "0.3.3",
- "commit": "ed5593b5fcaebfe2205b7980674d872156b516c4"
+ "type": "branch",
+ "branch": "master",
+ "commit": "ffc44a4e3ee4aa504ac531c663e66b68b11a9902"
},
"_source": "git://github.com/Polymer/context-free-parser.git",
- "_target": ">=0.3.0 <1.0.0",
+ "_target": "master",
"_originalSource": "Polymer/context-free-parser"
}
View
3  www/lib/context-free-parser/bower.json
@@ -1,5 +1,6 @@
{
"name": "context-free-parser",
"private": true,
- "dependencies": {}
+ "dependencies": {
+ }
}
View
13 www/lib/core-ajax/.bower.json
@@ -2,17 +2,16 @@
"name": "core-ajax",
"private": true,
"dependencies": {
- "polymer": "Polymer/polymer#>=0.3.0 <1.0.0"
+ "polymer": "Polymer/polymer#master"
},
"homepage": "https://github.com/Polymer/core-ajax",
- "version": "0.3.3",
- "_release": "0.3.3",
+ "_release": "aa874e674c",
"_resolution": {
- "type": "version",
- "tag": "0.3.3",
- "commit": "b9cb6d8e2a5b91cbe752bdb89f5c58cadf92fad6"
+ "type": "branch",
+ "branch": "master",
+ "commit": "aa874e674c22739ce8f342aeb36149a1fe634a9e"
},
"_source": "git://github.com/Polymer/core-ajax.git",
- "_target": ">=0.3.0 <1.0.0",
+ "_target": "master",
"_originalSource": "Polymer/core-ajax"
}
View
2  www/lib/core-ajax/README.md
@@ -1,4 +1,4 @@
core-ajax
=========
-See the [component page](http://polymer.github.io/core-ajax) for more information.
+See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-ajax) for more information.
View
2  www/lib/core-ajax/bower.json
@@ -2,6 +2,6 @@
"name": "core-ajax",
"private": true,
"dependencies": {
- "polymer": "Polymer/polymer#>=0.3.0 <1.0.0"
+ "polymer": "Polymer/polymer#master"
}
}
View
19 www/lib/core-animated-pages/.bower.json
@@ -0,0 +1,19 @@
+{
+ "name": "core-animated-pages",
+ "private": true,
+ "dependencies": {
+ "polymer": "Polymer/polymer#master",
+ "core-selector": "Polymer/core-selector#master",
+ "core-transition": "Polymer/core-transition#master"
+ },
+ "homepage": "https://github.com/Polymer/core-animated-pages",
+ "_release": "60d77adedb",
+ "_resolution": {
+ "type": "branch",
+ "branch": "master",
+ "commit": "60d77adedbcd28be1b5ee92f7b5305672d87af73"
+ },
+ "_source": "git://github.com/Polymer/core-animated-pages.git",
+ "_target": "master",
+ "_originalSource": "Polymer/core-animated-pages"
+}
View
4 www/lib/core-animated-pages/README.md
@@ -0,0 +1,4 @@
+core-animated-pages
+===================
+
+See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-animated-pages) for more information.
View
9 www/lib/core-animated-pages/bower.json
@@ -0,0 +1,9 @@
+{
+ "name": "core-animated-pages",
+ "private": true,
+ "dependencies": {
+ "polymer": "Polymer/polymer#master",
+ "core-selector": "Polymer/core-selector#master",
+ "core-transition": "Polymer/core-transition#master"
+ }
+}
View
18 www/lib/core-animated-pages/core-animated-pages.css
@@ -0,0 +1,18 @@
+:host {
+ display: block;
+ position: relative;
+}
+
+polyfill-next-selector { content: ':host > *'; }
+::content > * {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+}
+
+polyfill-next-selector { content: ':host > *:not(.core-selected):not([animate])'; }
+::content > *:not(.core-selected):not([animate]) {
+ display: none !important;
+}
View
414 www/lib/core-animated-pages/core-animated-pages.html
@@ -0,0 +1,414 @@
+<link href="../core-selector/core-selector.html" rel="import">
+
+<link href="transitions/hero-transition.html" rel="import">
+<link href="transitions/cross-fade.html" rel="import">
+
+<!--
+
+`core-animated-pages` selects one of its children "pages" to show and runs a transition
+when switching between them. The transitions are designed to be pluggable, and can
+accept any object that is an instance of a `core-transition-pages`. Transitions to run
+are specified in the `transitions` attribute as a space-delimited string of `id`s of
+transition elements. Several transitions are available with `core-animated-pages` by
+default, including `hero-transition`, `cross-fade`, and `tile-cascade`.
+
+Example:
+
+ <style>
+ #hero1 {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 300px;
+ height: 300px;
+ background-color: orange;
+ }
+ #hero2 {
+ position: absolute;
+ top: 200px;
+ left: 300px;
+ width: 300px;
+ height: 300px;
+ background-color: orange;
+ }
+ #bottom1, #bottom2 {
+ position: absolute;
+ bottom: 0;
+ top: 0;
+ left: 0;
+ height: 50px;
+ }
+ #bottom1 {
+ background-color: blue;
+ }
+ #bottom2 {
+ background-color: green;
+ }
+ </style>
+ // hero-transition and cross-fade are declared elsewhere
+ <core-animated-pages transitions="hero-transition cross-fade">
+ <section id="page1">
+ <div id="hero1" hero-id="hero" hero></div>
+ <div id="bottom1" cross-fade></div>
+ </section>
+ <section id="page2">
+ <div id="hero2" hero-id="hero" hero></div>
+ <div id="bottom2" cross-fade></div>
+ </section>
+ </core-animated-pages>
+
+In the above example, two transitions (`hero-transition` and `cross-fade`) are run when switching
+between `page1` and `page2`. `hero-transition` transforms elements with the same `hero-id` such
+that they appear to be shared across different pages. `cross-fade` fades out the elements marked
+`cross-fade` in the outgoing page, and fades in those in the incoming page. See the individual
+transition's documentation for specific details.
+
+Finding elements to transition
+------------------------------
+
+In general, a transition is applied to elements marked with a certain attribute. For example,
+`hero-transition` applies the transition on elements with the `hero` and `hero-id` attribute.
+Among the transitions included with `core-animated-pages`, script-based transitions such as
+`hero-transition` generally look for elements up to one level of shadowRoot from the
+`core-animated-pages` element, and CSS-based transitions such as `cross-fade` look for elements
+within any shadowRoot within the `core-animated-pages` element. This means you can use
+custom elements as pages and mark elements in their shadowRoots as heroes, or mark
+elements in deeper shadowRoots with other transitions.
+
+Example:
+
+ <polymer-element name="x-el" noscript>
+ <template>
+ <style>
+ #hero {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 50px;
+ height: 300px;
+ background-color: blue;
+ }
+ </style>
+ <div id="hero" hero-id="bar" hero></div>
+ </template>
+ </polymer-element>
+
+ <polymer-element name="x-page-1" noscript>
+ <template>
+ <style>
+ #hero1 {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 300px;
+ height: 300px;
+ background-color: orange;
+ }
+ </style>
+ <div id="hero1" hero-id="foo" hero></div>
+ <div id="hero2" hero-id="bar" hero></div>
+ </template>
+ </polymer-element>
+
+ <polymer-element name="x-page-2" noscript>
+ <template>
+ <style>
+ #hero1 {
+ position: absolute;
+ top: 200px;
+ left: 300px;
+ width: 300px;
+ height: 300px;
+ background-color: orange;
+ }
+ #hero2 {
+ background-color: blue;
+ height: 150px;
+ width: 400px;
+ }
+ </style>
+ // The below element is one level of shadow from the core-animated-pages and will
+ // be transitioned.
+ <div id="hero1" hero-id="foo" hero></div>
+ // The below element contains a hero inside its shadowRoot making it two levels away
+ // from the core-animated-pages, and will not be transitioned.
+ <x-el></x-el>
+ </template>
+ </polymer-element>
+
+ <core-animated-pages transitions="hero-transition">
+ <x-page-1></x-page-1>
+ <x-page-2></x-page-2>
+ </core-animated-pages>
+
+Note that the container element of the page does not participate in the transition.
+
+ // This does not work
+ <core-animated-pages transitions="cross-fade">
+ <section cross-fade></section>
+ <section cross-fade></section>
+ </core-animated-pages>
+
+ // This works
+ <core-animated-pages transitions="cross-fade">
+ <section>
+ <div cross-fade></div>
+ </section>
+ <section>
+ <div cross-fade></div>
+ </section>
+ </core-animated-pages>
+
+Dynamically setting up transitions
+----------------------------------
+
+An easy way to dynamically set up transitions dynamically is to use property binding on
+the transition attributes.
+
+Example:
+
+ <core-animated-pages selected="{{selected}}">
+ <section id="page1">
+ <div hero-id="hero" hero></div>
+ </section>
+ <section id="page2">
+ <div id="foo" hero-id="hero" hero?="{{selected === 1 || selected === 0}}" cross-fade="{{selected === 2}}"></div>
+ </section>
+ <section id="page3">
+ </section>
+ </core-animated-pages>
+
+In the above example, the "foo" element only behaves as a hero element if transitioning between
+`#page1` and `#page2`. It gets cross-faded when transition to or from `#page3`.
+
+Nesting pages
+-------------
+
+It is possible to nest core-animated-pages elements for organization. Excessive nesting is
+not encouraged, however, since it makes setting up the transition more complex.
+
+To nest core-animated-pages, the page containing the nested core-animated-pages element should
+have a `selectedItem` property bound to the `selectedItem` property of the nested element. This
+will allow the outer core-animated-pages to know which nested page it is actually transitioning
+to.
+
+Example:
+
+ <polymer-element name="nested-page" attributes="selectedItem">
+ <template>
+ <core-animated-pages selectedItem="{{selectedItem}}">
+ ...
+ </core-animated-pages>
+ </template>
+ </polymer-element>
+
+ <core-animated-pages>
+ <section id="page1"></section>
+ <nested-page id="page2"></section>
+ </core-animated-pages>
+
+@element core-animated-pages
+@status beta
+@homepage github.io
+-->
+<!--
+Fired when a page transition completes.
+
+@event core-animated-pages-transition-end
+-->
+<polymer-element name="core-animated-pages" extends="core-selector" notap attributes="transitions">
+
+<template>
+
+ <link href="core-animated-pages.css" rel="stylesheet">
+
+ <shadow></shadow>
+
+</template>
+
+<script>
+
+ Polymer({
+
+ eventDelegates: {
+ 'core-transitionend': 'transitionEnd'
+ },
+
+ /**
+ * A space-delimited string of transitions to use when switching between pages in this element.
+ * The strings are `id`s of `core-transition-pages` elements included elsewhere. See the
+ * individual transition's document for specific details.
+ *
+ * @attribute transitions
+ * @type string
+ * @default ''
+ */
+ transitions: '',
+
+ selected: 0,
+
+ /**
+ * The last page selected. This property is useful to dynamically set transitions based
+ * on incoming and outgoing pages.
+ *
+ * @attribute lastSelected
+ * @type Object
+ * @default null
+ */
+ lastSelected: null,
+
+ registerCallback: function() {
+ this.tmeta = document.createElement('core-transition');
+ },
+
+ created: function() {
+ this._transitions = [];
+ this.transitioning = [];
+ },
+
+ transitionsChanged: function() {
+ this._transitions = this.transitions.split(' ');
+ },
+
+ _transitionsChanged: function(old) {
+ if (this._transitionElements) {
+ this._transitionElements.forEach(function(t) {
+ t.teardown(this);
+ }, this);
+ }
+ this._transitionElements = [];
+ this._transitions.forEach(function(transitionId) {
+ var t = this.getTransition(transitionId);
+ if (t) {
+ this._transitionElements.push(t);
+ t.setup(this);
+ }
+ }, this);
+ },
+
+ getTransition: function(transitionId) {
+ return this.tmeta.byId(transitionId);
+ },
+
+ selectionSelect: function(e, detail) {
+ this.updateSelectedItem();
+ // Wait to call applySelection when we run the transition
+ },
+
+ applyTransition: function(src, dst) {
+ if (this.animating) {
+ this.cancelAsync(this.animating);
+ this.animating = null;
+ }
+
+ Platform.flush();
+
+ if (this.transitioning.indexOf(src) === -1) {
+ this.transitioning.push(src);
+ }
+ if (this.transitioning.indexOf(dst) === -1) {
+ this.transitioning.push(dst);
+ }
+ // force src, dst to display
+ src.setAttribute('animate', '');
+ dst.setAttribute('animate', '');
+ //
+ var options = {
+ src: src,
+ dst: dst,
+ easing: 'cubic-bezier(0.4, 0, 0.2, 1)'
+ }
+ //
+ // prepare transition
+ this._transitionElements.forEach(function(transition) {
+ transition.prepare(this, options);
+ }, this);
+ //
+ // force layout!
+ src.offsetTop;
+
+ //
+ // apply selection
+ this.applySelection(dst, true);
+ this.applySelection(src, false);
+ //
+ // start transition
+ this._transitionElements.forEach(function(transition) {
+ transition.go(this, options);
+ }, this);
+
+ if (!this._transitionElements.length) {
+ this.complete();
+ } else {
+ this.animating = this.async(this.complete.bind(this), null, 5000);
+ }
+ },
+
+ complete: function() {
+ if (this.animating) {
+ this.cancelAsync(this.animating);
+ this.animating = null;
+ }
+
+ this.transitioning.forEach(function(t) {
+ t.removeAttribute('animate');
+ });
+ this.transitioning = [];
+
+ this._transitionElements.forEach(function(transition) {
+ transition.ensureComplete(this);
+ }, this);
+
+ this.fire('core-animated-pages-transition-end');
+ },
+
+ transitionEnd: function(e) {
+ if (this.transitioning.length) {
+ var completed = true;
+ this._transitionElements.forEach(function(transition) {
+ if (!transition.completed) {
+ completed = false;
+ }
+ });
+ if (completed) {
+ this.job('transitionWatch', function() {
+ this.complete();
+ }, 100);
+ }
+ }
+ },
+
+ selectedChanged: function(old) {
+ this.lastSelected = old;
+ this.super(arguments);
+ },
+
+ selectedItemChanged: function(oldItem) {
+ this.super(arguments);
+
+ if (!oldItem) {
+ this.applySelection(this.selectedItem, true);
+ return;
+ }
+
+ if (this.hasAttribute('no-transition') || !this._transitionElements || !this._transitionElements.length) {
+ this.applySelection(oldItem, false);
+ this.applySelection(this.selectedItem, true);
+ return;
+ }
+
+ if (oldItem && this.selectedItem) {
+ // TODO(sorvell): allow bindings to update first?
+ var self = this;
+ Platform.flush();
+ Platform.endOfMicrotask(function() {
+ self.applyTransition(oldItem, self.selectedItem);
+ });
+ }
+ }
+
+ });
+
+</script>
+
+</polymer-element>
View
14 www/lib/core-animated-pages/demo.html
@@ -0,0 +1,14 @@
+<a href="demos/simple.html">pluggable transitions</a>
+<br>
+<a href="demos/news.html">icon to top bar</a>
+<br>
+<a href="demos/music.html">chip to card</a>
+<br>
+<a href="demos/list.html">list reorder</a>
+<br>
+<a href="demos/grid.html">grid to full screen</a>
+<br>
+<a href="demos/nested.html">nested core-animated-pages</a>
+<br>
+<a href="demos/quiz1.html">quiz: category to splash to question</a>
+<br>
View
104 www/lib/core-animated-pages/demos/grid.html
@@ -0,0 +1,104 @@
+<!doctype html>
+<html>
+<head>
+
+ <script src="../../platform/platform.js"></script>
+
+ <link href="../../core-icons/core-icons.html" rel="import">
+ <link href="../../core-icon-button/core-icon-button.html" rel="import">
+ <link href="../../core-toolbar/core-toolbar.html" rel="import">
+ <link href="../core-animated-pages.html" rel="import">
+
+ <style>
+ body {
+ font-family: sans-serif;
+ }
+
+ .toolbar {
+ background-color: steelblue;
+ }
+
+ #container {
+ overflow: auto;
+ }
+
+ .card {
+ position: relative;
+ height: 150px;
+ width: 150px;
+ font-size: 50px;
+ margin: 8px;
+ background-color: tomato;
+ border-radius: 4px;
+ cursor: default;
+ }
+
+ .view {
+ font-size: 250px;
+ background-color: tomato;
+ }
+
+ </style>
+
+</head>
+<body unresolved fullbleed vertical layout>
+ <template is="auto-binding">
+ <core-toolbar class="toolbar">
+ <core-icon-button icon="{{$.pages.selected != 0 ? 'arrow-back' : 'menu'}}" on-tap="{{back}}"></core-icon-button>
+ <div flex>Stuff</div>
+ <core-icon-button icon="more-vert"></core-icon-button>
+ </core-toolbar>
+ <core-animated-pages id="pages" flex selected="0" on-core-animated-pages-transition-end="{{transitionend}}" transitions="cross-fade-all hero-transition">
+
+ <section vertical layout>
+
+ <div id="container" flex horizontal wrap around-justified layout hero-p>
+ <template repeat="{{item in items}}">
+ <div class="card" vertical center center-justified layout hero-id="item-{{item}}" hero?="{{$.pages.selected === item + 1 || lastSelected === item + 1}}" on-tap="{{selectView}}"><span cross-fade>{{item}}</span></div>
+ </template>
+ </div>
+
+ </section>
+
+ <template repeat="{{item in items}}">
+ <section vertical layout>
+ <div class="view" flex vertical center center-justified layout hero-id="item-{{item}}" hero?="{{$.pages.selected === item + 1 || $.pages.selected === 0}}"><span cross-fade>{{item}}</span></div>
+ </section>
+ </template>
+
+ </core-animated-pages>
+ </template>
+
+ <script>
+
+ addEventListener('template-bound', function(e) {
+ var scope = e.target;
+ var items = [], count=50;
+ for (var i=0; i < count; i++) {
+ items.push(i);
+ }
+
+ scope.items = items;
+
+ scope.selectView = function(e) {
+ var i = e.target.templateInstance.model.item;
+ this.$.pages.selected = i+1;
+ }
+
+ scope.back = function() {
+ this.lastSelected = this.$.pages.selected;
+ console.log(this.lastSelected);
+ this.$.pages.selected = 0;
+ }
+
+ scope.transitionend = function() {
+ if (this.lastSelected) {
+ this.lastSelected = null;
+ }
+ }
+ })
+
+ </script>
+
+</body>
+</html>
View
117 www/lib/core-animated-pages/demos/list.html
@@ -0,0 +1,117 @@
+<!doctype html>
+<html>
+<head>
+
+ <script src="../../platform/platform.js"></script>
+ <link href="../core-animated-pages.html" rel="import">
+
+ <style>
+ body {
+ font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ margin: 0;
+ }
+
+ </style>
+
+</head>
+<body unresolved>
+
+ <polymer-element name="list-demo">
+ <template>
+
+ <style>
+ p {
+ margin: 8px;
+ }
+
+ .item {
+ background: #e7e7e7;
+ padding: 16px;
+ margin: 8px;
+ border-radius: 3px;
+ box-sizing: border-box;
+ position: relative;
+ }
+ </style>
+
+ <p>Tap to move to top</p>
+
+ <core-animated-pages id="pages" on-tap="{{reorder}}" selected="{{selected}}" on-core-animated-pages-transition-end="{{done}}" transitions="hero-transition">
+
+ <section>
+ <template repeat="{{items}}">
+ <div hero-id="{{h}}" hero class="item">{{v}}</div>
+ </template>
+ </section>
+
+ <section>
+ <template repeat="{{items2}}">
+ <div hero-id="{{h}}" hero class="item">{{v}}</div>
+ </template>
+ </section>
+
+ </core-animated-pages>
+
+ </template>
+
+ <script>
+
+ Polymer('list-demo', {
+
+ selected: 0,
+
+ items: [
+ {h: 'matt', v: 'Matt McNulty'},
+ {h: 'scott', v: 'Scott Miles'},
+ {h: 'steve', v: 'Steve Orvell'},
+ {h: 'frankie', v: 'Frankie Fu'},
+ {h: 'daniel', v: 'Daniel Freedman'},
+ {h: 'yvonne', v: 'Yvonne Yip'},
+ ],
+
+ items2: [
+ {h: 'matt', v: 'Matt McNulty'},
+ {h: 'scott', v: 'Scott Miles'},
+ {h: 'steve', v: 'Steve Orvell'},
+ {h: 'frankie', v: 'Frankie Fu'},
+ {h: 'daniel', v: 'Daniel Freedman'},
+ {h: 'yvonne', v: 'Yvonne Yip'},
+ ],
+
+ reorder: function(e) {
+ if (this.$.pages.transitioning.length) {
+ return;
+ }
+
+ this.lastMoved = e.target;
+ this.lastMoved.style.zIndex = 10005;
+ var item = e.target.templateInstance.model;
+ var items = this.selected ? this.items : this.items2;
+ var i = this.selected ? this.items2.indexOf(item) : this.items.indexOf(item);
+ if (i != 0) {
+ items.splice(0, 0, item);
+ items.splice(i + 1, 1);
+ }
+
+ this.lastIndex = i;
+ this.selected = this.selected ? 0 : 1;
+ },
+
+ done: function() {
+ var i = this.lastIndex;
+ var items = this.selected ? this.items : this.items2;
+ var item = items[i];
+ items.splice(0, 0, item);
+ items.splice(i + 1, 1);
+ this.lastMoved.style.zIndex = null;
+ }
+ });
+
+ </script>
+
+ </polymer-element>
+
+ <list-demo></list-demo>
+
+</body>
+</html>
View
173 www/lib/core-animated-pages/demos/music.html
@@ -0,0 +1,173 @@
+<!doctype html>
+<html>
+<head>
+ <title>core-animated-pages</title>
+
+ <script src="../../platform/platform.js"></script>
+ <link href="../core-animated-pages.html" rel="import">
+
+ <style>
+ body {
+ font-family: 'Roboto 2', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ margin: 0;
+ background: #f1f1f1;
+ }
+
+ .green {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ height: 350px;
+ background: #70c26f;
+ }