easycomments 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (379) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +14 -0
  5. data/LICENSE +21 -0
  6. data/README.md +92 -0
  7. data/Rakefile +49 -0
  8. data/_config.yml +28 -0
  9. data/bin/ec +45 -0
  10. data/config.ru +12 -0
  11. data/dashboard.rb +57 -0
  12. data/easycomments.gemspec +22 -0
  13. data/ec.rb +43 -0
  14. data/lib/easycomments/ec_configuration.rb +42 -0
  15. data/lib/easycomments/ec_dashboard_model.rb +70 -0
  16. data/lib/easycomments/ec_model.rb +47 -0
  17. data/lib/easycomments.rb +14 -0
  18. data/public/bower.json +32 -0
  19. data/public/bower_components/core-a11y-keys/.bower.json +28 -0
  20. data/public/bower_components/core-a11y-keys/README.md +4 -0
  21. data/public/bower_components/core-a11y-keys/bower.json +18 -0
  22. data/public/bower_components/core-a11y-keys/core-a11y-keys.html +335 -0
  23. data/public/bower_components/core-a11y-keys/demo.html +41 -0
  24. data/public/bower_components/core-a11y-keys/index.html +22 -0
  25. data/public/bower_components/core-ajax/.bower.json +22 -0
  26. data/public/bower_components/core-ajax/README.md +4 -0
  27. data/public/bower_components/core-ajax/bower.json +11 -0
  28. data/public/bower_components/core-ajax/core-ajax.html +434 -0
  29. data/public/bower_components/core-ajax/core-xhr.html +116 -0
  30. data/public/bower_components/core-ajax/demo-progress.html +65 -0
  31. data/public/bower_components/core-ajax/demo.html +43 -0
  32. data/public/bower_components/core-ajax/index.html +22 -0
  33. data/public/bower_components/core-ajax/metadata.html +23 -0
  34. data/public/bower_components/core-ajax/test/core-ajax-progress.html +108 -0
  35. data/public/bower_components/core-ajax/test/core-ajax-race.html +81 -0
  36. data/public/bower_components/core-ajax/test/core-ajax.html +287 -0
  37. data/public/bower_components/core-ajax/test/index.html +17 -0
  38. data/public/bower_components/core-collapse/.bower.json +21 -0
  39. data/public/bower_components/core-collapse/README.md +4 -0
  40. data/public/bower_components/core-collapse/bower.json +11 -0
  41. data/public/bower_components/core-collapse/core-collapse.css +16 -0
  42. data/public/bower_components/core-collapse/core-collapse.html +298 -0
  43. data/public/bower_components/core-collapse/demo.html +75 -0
  44. data/public/bower_components/core-collapse/index.html +22 -0
  45. data/public/bower_components/core-collapse/test/basic.html +85 -0
  46. data/public/bower_components/core-collapse/test/index.html +24 -0
  47. data/public/bower_components/core-component-page/.bower.json +19 -0
  48. data/public/bower_components/core-component-page/README.md +6 -0
  49. data/public/bower_components/core-component-page/bowager-logo.png +0 -0
  50. data/public/bower_components/core-component-page/bower.json +9 -0
  51. data/public/bower_components/core-component-page/core-component-page.html +37 -0
  52. data/public/bower_components/core-component-page/demo.html +23 -0
  53. data/public/bower_components/core-component-page/index.html +22 -0
  54. data/public/bower_components/core-drawer-panel/.bower.json +19 -0
  55. data/public/bower_components/core-drawer-panel/README.md +4 -0
  56. data/public/bower_components/core-drawer-panel/bower.json +9 -0
  57. data/public/bower_components/core-drawer-panel/core-drawer-panel.css +160 -0
  58. data/public/bower_components/core-drawer-panel/core-drawer-panel.html +418 -0
  59. data/public/bower_components/core-drawer-panel/demo.html +68 -0
  60. data/public/bower_components/core-drawer-panel/index.html +22 -0
  61. data/public/bower_components/core-drawer-panel/metadata.html +37 -0
  62. data/public/bower_components/core-focusable/.bower.json +18 -0
  63. data/public/bower_components/core-focusable/README.md +6 -0
  64. data/public/bower_components/core-focusable/bower.json +8 -0
  65. data/public/bower_components/core-focusable/core-focusable.html +4 -0
  66. data/public/bower_components/core-focusable/core-focusable.js +134 -0
  67. data/public/bower_components/core-focusable/demo.html +109 -0
  68. data/public/bower_components/core-focusable/polymer-mixin.js +35 -0
  69. data/public/bower_components/core-header-panel/.bower.json +18 -0
  70. data/public/bower_components/core-header-panel/README.md +4 -0
  71. data/public/bower_components/core-header-panel/bower.json +8 -0
  72. data/public/bower_components/core-header-panel/core-header-panel.css +78 -0
  73. data/public/bower_components/core-header-panel/core-header-panel.html +277 -0
  74. data/public/bower_components/core-header-panel/demo.html +100 -0
  75. data/public/bower_components/core-header-panel/index.html +23 -0
  76. data/public/bower_components/core-header-panel/metadata.html +37 -0
  77. data/public/bower_components/core-icon/.bower.json +19 -0
  78. data/public/bower_components/core-icon/README.md +4 -0
  79. data/public/bower_components/core-icon/bower.json +9 -0
  80. data/public/bower_components/core-icon/core-icon.css +16 -0
  81. data/public/bower_components/core-icon/core-icon.html +201 -0
  82. data/public/bower_components/core-icon/demo.html +44 -0
  83. data/public/bower_components/core-icon/index.html +22 -0
  84. data/public/bower_components/core-icon/metadata.html +21 -0
  85. data/public/bower_components/core-icon-button/.bower.json +18 -0
  86. data/public/bower_components/core-icon-button/README.md +4 -0
  87. data/public/bower_components/core-icon-button/bower.json +8 -0
  88. data/public/bower_components/core-icon-button/core-icon-button.css +75 -0
  89. data/public/bower_components/core-icon-button/core-icon-button.html +81 -0
  90. data/public/bower_components/core-icon-button/demo.html +35 -0
  91. data/public/bower_components/core-icon-button/index.html +22 -0
  92. data/public/bower_components/core-icon-button/metadata.html +20 -0
  93. data/public/bower_components/core-icons/.bower.json +24 -0
  94. data/public/bower_components/core-icons/.gitignore +2 -0
  95. data/public/bower_components/core-icons/README.md +8 -0
  96. data/public/bower_components/core-icons/av-icons.html +65 -0
  97. data/public/bower_components/core-icons/bower.json +14 -0
  98. data/public/bower_components/core-icons/communication-icons.html +54 -0
  99. data/public/bower_components/core-icons/core-icons.html +278 -0
  100. data/public/bower_components/core-icons/demo.html +98 -0
  101. data/public/bower_components/core-icons/device-icons.html +90 -0
  102. data/public/bower_components/core-icons/editor-icons.html +67 -0
  103. data/public/bower_components/core-icons/hardware-icons.html +56 -0
  104. data/public/bower_components/core-icons/image-icons.html +152 -0
  105. data/public/bower_components/core-icons/index.html +22 -0
  106. data/public/bower_components/core-icons/maps-icons.html +70 -0
  107. data/public/bower_components/core-icons/notification-icons.html +49 -0
  108. data/public/bower_components/core-icons/social-icons.html +39 -0
  109. data/public/bower_components/core-iconset/.bower.json +20 -0
  110. data/public/bower_components/core-iconset/README.md +4 -0
  111. data/public/bower_components/core-iconset/bower.json +10 -0
  112. data/public/bower_components/core-iconset/core-iconset.html +241 -0
  113. data/public/bower_components/core-iconset/demo.html +62 -0
  114. data/public/bower_components/core-iconset/index.html +22 -0
  115. data/public/bower_components/core-iconset/my-icons-big.png +0 -0
  116. data/public/bower_components/core-iconset/my-icons.png +0 -0
  117. data/public/bower_components/core-iconset-svg/.bower.json +19 -0
  118. data/public/bower_components/core-iconset-svg/README.md +4 -0
  119. data/public/bower_components/core-iconset-svg/bower.json +9 -0
  120. data/public/bower_components/core-iconset-svg/core-iconset-svg.html +168 -0
  121. data/public/bower_components/core-iconset-svg/demo.html +66 -0
  122. data/public/bower_components/core-iconset-svg/index.html +22 -0
  123. data/public/bower_components/core-iconset-svg/svg-sample-icons.html +68 -0
  124. data/public/bower_components/core-input/.bower.json +20 -0
  125. data/public/bower_components/core-input/README.md +2 -0
  126. data/public/bower_components/core-input/bower.json +10 -0
  127. data/public/bower_components/core-input/core-input.css +41 -0
  128. data/public/bower_components/core-input/core-input.html +148 -0
  129. data/public/bower_components/core-input/demo.html +62 -0
  130. data/public/bower_components/core-input/index.html +22 -0
  131. data/public/bower_components/core-input/metadata.html +23 -0
  132. data/public/bower_components/core-input/test/a11y.html +55 -0
  133. data/public/bower_components/core-input/test/basic.html +60 -0
  134. data/public/bower_components/core-input/test/index.html +25 -0
  135. data/public/bower_components/core-item/.bower.json +19 -0
  136. data/public/bower_components/core-item/README.md +4 -0
  137. data/public/bower_components/core-item/bower.json +9 -0
  138. data/public/bower_components/core-item/core-item.css +45 -0
  139. data/public/bower_components/core-item/core-item.html +73 -0
  140. data/public/bower_components/core-item/demo.html +92 -0
  141. data/public/bower_components/core-item/index.html +22 -0
  142. data/public/bower_components/core-item/metadata.html +24 -0
  143. data/public/bower_components/core-media-query/.bower.json +18 -0
  144. data/public/bower_components/core-media-query/README.md +4 -0
  145. data/public/bower_components/core-media-query/bower.json +8 -0
  146. data/public/bower_components/core-media-query/core-media-query.html +87 -0
  147. data/public/bower_components/core-media-query/demo.html +44 -0
  148. data/public/bower_components/core-media-query/index.html +22 -0
  149. data/public/bower_components/core-menu/.bower.json +22 -0
  150. data/public/bower_components/core-menu/README.md +4 -0
  151. data/public/bower_components/core-menu/bower.json +11 -0
  152. data/public/bower_components/core-menu/core-menu.css +18 -0
  153. data/public/bower_components/core-menu/core-menu.html +73 -0
  154. data/public/bower_components/core-menu/core-submenu.css +43 -0
  155. data/public/bower_components/core-menu/core-submenu.html +126 -0
  156. data/public/bower_components/core-menu/demo.html +101 -0
  157. data/public/bower_components/core-menu/index.html +22 -0
  158. data/public/bower_components/core-menu/metadata.html +62 -0
  159. data/public/bower_components/core-meta/.bower.json +18 -0
  160. data/public/bower_components/core-meta/README.md +4 -0
  161. data/public/bower_components/core-meta/bower.json +8 -0
  162. data/public/bower_components/core-meta/core-meta.html +145 -0
  163. data/public/bower_components/core-meta/demo.html +58 -0
  164. data/public/bower_components/core-meta/index.html +22 -0
  165. data/public/bower_components/core-overlay/.bower.json +20 -0
  166. data/public/bower_components/core-overlay/README.md +4 -0
  167. data/public/bower_components/core-overlay/bower.json +10 -0
  168. data/public/bower_components/core-overlay/core-key-helper.html +22 -0
  169. data/public/bower_components/core-overlay/core-overlay-layer.html +116 -0
  170. data/public/bower_components/core-overlay/core-overlay.html +776 -0
  171. data/public/bower_components/core-overlay/demo.html +155 -0
  172. data/public/bower_components/core-overlay/gulpfile.js +2 -0
  173. data/public/bower_components/core-overlay/index.html +22 -0
  174. data/public/bower_components/core-overlay/tests/html/core-overlay-basic.html +127 -0
  175. data/public/bower_components/core-overlay/tests/html/core-overlay-positioning-margin.html +153 -0
  176. data/public/bower_components/core-overlay/tests/html/core-overlay-positioning.html +167 -0
  177. data/public/bower_components/core-overlay/tests/html/core-overlay-quick-close.html +45 -0
  178. data/public/bower_components/core-overlay/tests/html/core-overlay-scroll.html +130 -0
  179. data/public/bower_components/core-overlay/tests/js/htmltests.js +7 -0
  180. data/public/bower_components/core-overlay/tests/runner.html +14 -0
  181. data/public/bower_components/core-overlay/tests/tests.json +6 -0
  182. data/public/bower_components/core-pages/.bower.json +19 -0
  183. data/public/bower_components/core-pages/README.md +4 -0
  184. data/public/bower_components/core-pages/bower.json +8 -0
  185. data/public/bower_components/core-pages/core-pages.css +30 -0
  186. data/public/bower_components/core-pages/core-pages.html +44 -0
  187. data/public/bower_components/core-pages/demo.html +136 -0
  188. data/public/bower_components/core-pages/index.html +22 -0
  189. data/public/bower_components/core-pages/metadata.html +25 -0
  190. data/public/bower_components/core-resizable/.bower.json +18 -0
  191. data/public/bower_components/core-resizable/README.md +4 -0
  192. data/public/bower_components/core-resizable/bower.json +8 -0
  193. data/public/bower_components/core-resizable/core-resizable.html +248 -0
  194. data/public/bower_components/core-resizable/index.html +22 -0
  195. data/public/bower_components/core-resizable/test/basic.html +504 -0
  196. data/public/bower_components/core-resizable/test/index.html +16 -0
  197. data/public/bower_components/core-resizable/test/test-elements.html +66 -0
  198. data/public/bower_components/core-scaffold/.bower.json +22 -0
  199. data/public/bower_components/core-scaffold/README.md +4 -0
  200. data/public/bower_components/core-scaffold/bower.json +11 -0
  201. data/public/bower_components/core-scaffold/core-scaffold.html +252 -0
  202. data/public/bower_components/core-scaffold/demo.html +82 -0
  203. data/public/bower_components/core-scaffold/index.html +22 -0
  204. data/public/bower_components/core-scaffold/metadata.html +52 -0
  205. data/public/bower_components/core-selection/.bower.json +21 -0
  206. data/public/bower_components/core-selection/README.md +4 -0
  207. data/public/bower_components/core-selection/bower.json +11 -0
  208. data/public/bower_components/core-selection/core-selection.html +149 -0
  209. data/public/bower_components/core-selection/demo.html +59 -0
  210. data/public/bower_components/core-selection/index.html +22 -0
  211. data/public/bower_components/core-selection/test/basic.html +62 -0
  212. data/public/bower_components/core-selection/test/index.html +25 -0
  213. data/public/bower_components/core-selection/test/multi.html +63 -0
  214. data/public/bower_components/core-selector/.bower.json +22 -0
  215. data/public/bower_components/core-selector/.gitignore +2 -0
  216. data/public/bower_components/core-selector/README.md +4 -0
  217. data/public/bower_components/core-selector/bower.json +12 -0
  218. data/public/bower_components/core-selector/core-selector.html +548 -0
  219. data/public/bower_components/core-selector/demo.html +106 -0
  220. data/public/bower_components/core-selector/index.html +22 -0
  221. data/public/bower_components/core-selector/metadata.html +20 -0
  222. data/public/bower_components/core-selector/test/activate-event.html +63 -0
  223. data/public/bower_components/core-selector/test/basic.html +126 -0
  224. data/public/bower_components/core-selector/test/content.html +101 -0
  225. data/public/bower_components/core-selector/test/index.html +30 -0
  226. data/public/bower_components/core-selector/test/multi.html +115 -0
  227. data/public/bower_components/core-selector/test/next-previous.html +113 -0
  228. data/public/bower_components/core-selector/test/selected-attr-prop.html +62 -0
  229. data/public/bower_components/core-selector/test/template-repeat.html +63 -0
  230. data/public/bower_components/core-style/.bower.json +18 -0
  231. data/public/bower_components/core-style/README.md +4 -0
  232. data/public/bower_components/core-style/bower.json +8 -0
  233. data/public/bower_components/core-style/core-style.html +387 -0
  234. data/public/bower_components/core-style/demo.html +58 -0
  235. data/public/bower_components/core-style/elements.html +55 -0
  236. data/public/bower_components/core-style/index.html +22 -0
  237. data/public/bower_components/core-style/my-theme.html +73 -0
  238. data/public/bower_components/core-toolbar/.bower.json +19 -0
  239. data/public/bower_components/core-toolbar/README.md +4 -0
  240. data/public/bower_components/core-toolbar/bower.json +9 -0
  241. data/public/bower_components/core-toolbar/core-toolbar.css +117 -0
  242. data/public/bower_components/core-toolbar/core-toolbar.html +155 -0
  243. data/public/bower_components/core-toolbar/demo.html +119 -0
  244. data/public/bower_components/core-toolbar/index.html +22 -0
  245. data/public/bower_components/core-toolbar/metadata.html +28 -0
  246. data/public/bower_components/core-toolbar/test/basic.html +86 -0
  247. data/public/bower_components/core-toolbar/test/index.html +24 -0
  248. data/public/bower_components/core-transition/.bower.json +19 -0
  249. data/public/bower_components/core-transition/README.md +2 -0
  250. data/public/bower_components/core-transition/bower.json +9 -0
  251. data/public/bower_components/core-transition/core-transition-css.html +220 -0
  252. data/public/bower_components/core-transition/core-transition-overlay.css +46 -0
  253. data/public/bower_components/core-transition/core-transition.html +140 -0
  254. data/public/bower_components/core-transition/demo.html +87 -0
  255. data/public/bower_components/core-transition/index.html +22 -0
  256. data/public/bower_components/font-roboto/.bower.json +15 -0
  257. data/public/bower_components/font-roboto/roboto.html +9 -0
  258. data/public/bower_components/paper-button/.bower.json +27 -0
  259. data/public/bower_components/paper-button/README.md +4 -0
  260. data/public/bower_components/paper-button/bower.json +16 -0
  261. data/public/bower_components/paper-button/demo.html +157 -0
  262. data/public/bower_components/paper-button/index.html +22 -0
  263. data/public/bower_components/paper-button/metadata.html +17 -0
  264. data/public/bower_components/paper-button/paper-button-base.html +164 -0
  265. data/public/bower_components/paper-button/paper-button.html +197 -0
  266. data/public/bower_components/paper-button/test/index.html +24 -0
  267. data/public/bower_components/paper-button/test/paper-button.html +112 -0
  268. data/public/bower_components/paper-icon-button/.bower.json +25 -0
  269. data/public/bower_components/paper-icon-button/README.md +4 -0
  270. data/public/bower_components/paper-icon-button/bower.json +15 -0
  271. data/public/bower_components/paper-icon-button/demo.html +150 -0
  272. data/public/bower_components/paper-icon-button/index.html +22 -0
  273. data/public/bower_components/paper-icon-button/metadata.html +21 -0
  274. data/public/bower_components/paper-icon-button/paper-icon-button.html +154 -0
  275. data/public/bower_components/paper-icon-button/test/a11y.html +68 -0
  276. data/public/bower_components/paper-icon-button/test/basic.html +50 -0
  277. data/public/bower_components/paper-icon-button/test/index.html +25 -0
  278. data/public/bower_components/paper-input/.bower.json +26 -0
  279. data/public/bower_components/paper-input/.gitignore +1 -0
  280. data/public/bower_components/paper-input/README.md +4 -0
  281. data/public/bower_components/paper-input/bower.json +15 -0
  282. data/public/bower_components/paper-input/demo.html +236 -0
  283. data/public/bower_components/paper-input/index.html +22 -0
  284. data/public/bower_components/paper-input/metadata.html +20 -0
  285. data/public/bower_components/paper-input/paper-autogrow-textarea.html +162 -0
  286. data/public/bower_components/paper-input/paper-char-counter.html +121 -0
  287. data/public/bower_components/paper-input/paper-input-decorator.css +132 -0
  288. data/public/bower_components/paper-input/paper-input-decorator.html +547 -0
  289. data/public/bower_components/paper-input/paper-input.html +145 -0
  290. data/public/bower_components/paper-input/test/index.html +26 -0
  291. data/public/bower_components/paper-input/test/paper-autogrow-textarea.html +146 -0
  292. data/public/bower_components/paper-input/test/paper-input-decorator.html +240 -0
  293. data/public/bower_components/paper-input/test/paper-input.html +68 -0
  294. data/public/bower_components/paper-input/test/util.js +15 -0
  295. data/public/bower_components/paper-radio-button/.bower.json +22 -0
  296. data/public/bower_components/paper-radio-button/README.md +4 -0
  297. data/public/bower_components/paper-radio-button/bower.json +12 -0
  298. data/public/bower_components/paper-radio-button/demo.html +84 -0
  299. data/public/bower_components/paper-radio-button/index.html +22 -0
  300. data/public/bower_components/paper-radio-button/metadata.html +17 -0
  301. data/public/bower_components/paper-radio-button/paper-radio-button.css +108 -0
  302. data/public/bower_components/paper-radio-button/paper-radio-button.html +166 -0
  303. data/public/bower_components/paper-ripple/.bower.json +23 -0
  304. data/public/bower_components/paper-ripple/README.md +4 -0
  305. data/public/bower_components/paper-ripple/bower.json +13 -0
  306. data/public/bower_components/paper-ripple/demo.html +414 -0
  307. data/public/bower_components/paper-ripple/index.html +22 -0
  308. data/public/bower_components/paper-ripple/metadata.html +20 -0
  309. data/public/bower_components/paper-ripple/paper-ripple.html +477 -0
  310. data/public/bower_components/paper-ripple/test/index.html +24 -0
  311. data/public/bower_components/paper-ripple/test/position.html +109 -0
  312. data/public/bower_components/paper-shadow/.bower.json +22 -0
  313. data/public/bower_components/paper-shadow/README.md +4 -0
  314. data/public/bower_components/paper-shadow/bower.json +11 -0
  315. data/public/bower_components/paper-shadow/demo.html +134 -0
  316. data/public/bower_components/paper-shadow/index.html +22 -0
  317. data/public/bower_components/paper-shadow/metadata.html +17 -0
  318. data/public/bower_components/paper-shadow/paper-shadow.css +66 -0
  319. data/public/bower_components/paper-shadow/paper-shadow.html +86 -0
  320. data/public/bower_components/paper-shadow/test/basic.html +62 -0
  321. data/public/bower_components/paper-shadow/test/index.html +24 -0
  322. data/public/bower_components/paper-tabs/.bower.json +26 -0
  323. data/public/bower_components/paper-tabs/README.md +4 -0
  324. data/public/bower_components/paper-tabs/bower.json +15 -0
  325. data/public/bower_components/paper-tabs/demo.html +242 -0
  326. data/public/bower_components/paper-tabs/index.html +22 -0
  327. data/public/bower_components/paper-tabs/metadata.html +58 -0
  328. data/public/bower_components/paper-tabs/paper-tab.css +59 -0
  329. data/public/bower_components/paper-tabs/paper-tab.html +82 -0
  330. data/public/bower_components/paper-tabs/paper-tabs.css +80 -0
  331. data/public/bower_components/paper-tabs/paper-tabs.html +353 -0
  332. data/public/bower_components/paper-toast/.bower.json +22 -0
  333. data/public/bower_components/paper-toast/README.md +4 -0
  334. data/public/bower_components/paper-toast/bower.json +11 -0
  335. data/public/bower_components/paper-toast/demo.html +63 -0
  336. data/public/bower_components/paper-toast/index.html +22 -0
  337. data/public/bower_components/paper-toast/metadata.html +20 -0
  338. data/public/bower_components/paper-toast/paper-toast.css +80 -0
  339. data/public/bower_components/paper-toast/paper-toast.html +296 -0
  340. data/public/bower_components/paper-toggle-button/.bower.json +20 -0
  341. data/public/bower_components/paper-toggle-button/README.md +4 -0
  342. data/public/bower_components/paper-toggle-button/bower.json +9 -0
  343. data/public/bower_components/paper-toggle-button/demo.html +97 -0
  344. data/public/bower_components/paper-toggle-button/index.html +22 -0
  345. data/public/bower_components/paper-toggle-button/metadata.html +17 -0
  346. data/public/bower_components/paper-toggle-button/paper-toggle-button.css +95 -0
  347. data/public/bower_components/paper-toggle-button/paper-toggle-button.html +179 -0
  348. data/public/bower_components/polymer/.bower.json +32 -0
  349. data/public/bower_components/polymer/README.md +21 -0
  350. data/public/bower_components/polymer/bower.json +23 -0
  351. data/public/bower_components/polymer/build.log +26 -0
  352. data/public/bower_components/polymer/layout.html +286 -0
  353. data/public/bower_components/polymer/polymer.html +12 -0
  354. data/public/bower_components/polymer/polymer.js +11859 -0
  355. data/public/bower_components/polymer/polymer.min.js +14 -0
  356. data/public/bower_components/webcomponentsjs/.bower.json +23 -0
  357. data/public/bower_components/webcomponentsjs/CustomElements.js +634 -0
  358. data/public/bower_components/webcomponentsjs/CustomElements.min.js +11 -0
  359. data/public/bower_components/webcomponentsjs/HTMLImports.js +764 -0
  360. data/public/bower_components/webcomponentsjs/HTMLImports.min.js +11 -0
  361. data/public/bower_components/webcomponentsjs/README.md +73 -0
  362. data/public/bower_components/webcomponentsjs/ShadowDOM.js +4277 -0
  363. data/public/bower_components/webcomponentsjs/ShadowDOM.min.js +13 -0
  364. data/public/bower_components/webcomponentsjs/bower.json +14 -0
  365. data/public/bower_components/webcomponentsjs/build.log +31 -0
  366. data/public/bower_components/webcomponentsjs/package.json +31 -0
  367. data/public/bower_components/webcomponentsjs/webcomponents-lite.js +1728 -0
  368. data/public/bower_components/webcomponentsjs/webcomponents-lite.min.js +11 -0
  369. data/public/bower_components/webcomponentsjs/webcomponents.js +6114 -0
  370. data/public/bower_components/webcomponentsjs/webcomponents.min.js +14 -0
  371. data/public/css/main.css +41 -0
  372. data/public/elements/ec-dashboard/ec-dashboard.html +269 -0
  373. data/public/polymer-loader.html +24 -0
  374. data/public/polymer-loader.vulcanized.html +19 -0
  375. data/spec/ec/ec_dashboard_spec.rb +78 -0
  376. data/spec/ec/ec_spec.rb +78 -0
  377. data/spec/spec_helper.rb +27 -0
  378. data/views/index.html +88 -0
  379. metadata +464 -0
@@ -0,0 +1,548 @@
1
+ <!--
2
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
3
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
4
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
5
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
6
+ Code distributed by Google as part of the polymer project is also
7
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
8
+ -->
9
+
10
+ <!--
11
+ @group Polymer Core Elements
12
+
13
+ `<core-selector>` is used to manage a list of elements that can be selected.
14
+
15
+ The attribute `selected` indicates which item element is being selected.
16
+ The attribute `multi` indicates if multiple items can be selected at once.
17
+ Tapping on the item element would fire `core-activate` event. Use
18
+ `core-select` event to listen for selection changes.
19
+
20
+ Example:
21
+
22
+ <core-selector selected="0">
23
+ <div>Item 1</div>
24
+ <div>Item 2</div>
25
+ <div>Item 3</div>
26
+ </core-selector>
27
+
28
+ `<core-selector>` is not styled. Use the `core-selected` CSS class to style the selected element.
29
+
30
+ <style>
31
+ .item.core-selected {
32
+ background: #eee;
33
+ }
34
+ </style>
35
+ ...
36
+ <core-selector>
37
+ <div class="item">Item 1</div>
38
+ <div class="item">Item 2</div>
39
+ <div class="item">Item 3</div>
40
+ </core-selector>
41
+
42
+ @element core-selector
43
+ @status stable
44
+ @homepage github.io
45
+ -->
46
+
47
+ <!--
48
+ Fired when an item's selection state is changed. This event is fired both
49
+ when an item is selected or deselected. The `isSelected` detail property
50
+ contains the selection state.
51
+
52
+ @event core-select
53
+ @param {Object} detail
54
+ @param {boolean} detail.isSelected true for selection and false for deselection
55
+ @param {Object} detail.item the item element
56
+ -->
57
+ <!--
58
+ Fired when an item element is tapped.
59
+
60
+ @event core-activate
61
+ @param {Object} detail
62
+ @param {Object} detail.item the item element
63
+ -->
64
+
65
+ <link rel="import" href="../polymer/polymer.html">
66
+ <link rel="import" href="../core-selection/core-selection.html">
67
+
68
+ <polymer-element name="core-selector"
69
+ attributes="selected multi valueattr selectedClass selectedProperty selectedAttribute selectedItem selectedModel selectedIndex notap excludedLocalNames target itemsSelector activateEvent">
70
+
71
+ <template>
72
+ <core-selection id="selection" multi="{{multi}}" on-core-select="{{selectionSelect}}"></core-selection>
73
+ <content id="items" select="*"></content>
74
+ </template>
75
+
76
+ <script>
77
+
78
+ Polymer('core-selector', {
79
+
80
+ /**
81
+ * Gets or sets the selected element. Default to use the index
82
+ * of the item element.
83
+ *
84
+ * If you want a specific attribute value of the element to be
85
+ * used instead of index, set "valueattr" to that attribute name.
86
+ *
87
+ * Example:
88
+ *
89
+ * <core-selector valueattr="label" selected="foo">
90
+ * <div label="foo"></div>
91
+ * <div label="bar"></div>
92
+ * <div label="zot"></div>
93
+ * </core-selector>
94
+ *
95
+ * In multi-selection this should be an array of values.
96
+ *
97
+ * Example:
98
+ *
99
+ * <core-selector id="selector" valueattr="label" multi>
100
+ * <div label="foo"></div>
101
+ * <div label="bar"></div>
102
+ * <div label="zot"></div>
103
+ * </core-selector>
104
+ *
105
+ * this.$.selector.selected = ['foo', 'zot'];
106
+ *
107
+ * @attribute selected
108
+ * @type Object
109
+ * @default null
110
+ */
111
+ selected: null,
112
+
113
+ /**
114
+ * If true, multiple selections are allowed.
115
+ *
116
+ * @attribute multi
117
+ * @type boolean
118
+ * @default false
119
+ */
120
+ multi: false,
121
+
122
+ /**
123
+ * Specifies the attribute to be used for "selected" attribute.
124
+ *
125
+ * @attribute valueattr
126
+ * @type string
127
+ * @default 'name'
128
+ */
129
+ valueattr: 'name',
130
+
131
+ /**
132
+ * Specifies the CSS class to be used to add to the selected element.
133
+ *
134
+ * @attribute selectedClass
135
+ * @type string
136
+ * @default 'core-selected'
137
+ */
138
+ selectedClass: 'core-selected',
139
+
140
+ /**
141
+ * Specifies the property to be used to set on the selected element
142
+ * to indicate its active state.
143
+ *
144
+ * @attribute selectedProperty
145
+ * @type string
146
+ * @default ''
147
+ */
148
+ selectedProperty: '',
149
+
150
+ /**
151
+ * Specifies the attribute to set on the selected element to indicate
152
+ * its active state.
153
+ *
154
+ * @attribute selectedAttribute
155
+ * @type string
156
+ * @default 'active'
157
+ */
158
+ selectedAttribute: 'active',
159
+
160
+ /**
161
+ * Returns the currently selected element. In multi-selection this returns
162
+ * an array of selected elements.
163
+ * Note that you should not use this to set the selection. Instead use
164
+ * `selected`.
165
+ *
166
+ * @attribute selectedItem
167
+ * @type Object
168
+ * @default null
169
+ */
170
+ selectedItem: null,
171
+
172
+ /**
173
+ * In single selection, this returns the model associated with the
174
+ * selected element.
175
+ * Note that you should not use this to set the selection. Instead use
176
+ * `selected`.
177
+ *
178
+ * @attribute selectedModel
179
+ * @type Object
180
+ * @default null
181
+ */
182
+ selectedModel: null,
183
+
184
+ /**
185
+ * In single selection, this returns the selected index.
186
+ * Note that you should not use this to set the selection. Instead use
187
+ * `selected`.
188
+ *
189
+ * @attribute selectedIndex
190
+ * @type number
191
+ * @default -1
192
+ */
193
+ selectedIndex: -1,
194
+
195
+ /**
196
+ * Nodes with local name that are in the list will not be included
197
+ * in the selection items. In the following example, `items` returns four
198
+ * `core-item`'s and doesn't include `h3` and `hr`.
199
+ *
200
+ * <core-selector excludedLocalNames="h3 hr">
201
+ * <h3>Header</h3>
202
+ * <core-item>Item1</core-item>
203
+ * <core-item>Item2</core-item>
204
+ * <hr>
205
+ * <core-item>Item3</core-item>
206
+ * <core-item>Item4</core-item>
207
+ * </core-selector>
208
+ *
209
+ * @attribute excludedLocalNames
210
+ * @type string
211
+ * @default ''
212
+ */
213
+ excludedLocalNames: '',
214
+
215
+ /**
216
+ * The target element that contains items. If this is not set
217
+ * core-selector is the container.
218
+ *
219
+ * @attribute target
220
+ * @type Object
221
+ * @default null
222
+ */
223
+ target: null,
224
+
225
+ /**
226
+ * This can be used to query nodes from the target node to be used for
227
+ * selection items. Note this only works if `target` is set
228
+ * and is not `core-selector` itself.
229
+ *
230
+ * Example:
231
+ *
232
+ * <core-selector target="{{$.myForm}}" itemsSelector="input[type=radio]"></core-selector>
233
+ * <form id="myForm">
234
+ * <label><input type="radio" name="color" value="red"> Red</label> <br>
235
+ * <label><input type="radio" name="color" value="green"> Green</label> <br>
236
+ * <label><input type="radio" name="color" value="blue"> Blue</label> <br>
237
+ * <p>color = {{color}}</p>
238
+ * </form>
239
+ *
240
+ * @attribute itemsSelector
241
+ * @type string
242
+ * @default ''
243
+ */
244
+ itemsSelector: '',
245
+
246
+ /**
247
+ * The event that would be fired from the item element to indicate
248
+ * it is being selected.
249
+ *
250
+ * @attribute activateEvent
251
+ * @type string
252
+ * @default 'tap'
253
+ */
254
+ activateEvent: 'tap',
255
+
256
+ /**
257
+ * Set this to true to disallow changing the selection via the
258
+ * `activateEvent`.
259
+ *
260
+ * @attribute notap
261
+ * @type boolean
262
+ * @default false
263
+ */
264
+ notap: false,
265
+
266
+ defaultExcludedLocalNames: 'template',
267
+
268
+ observe: {
269
+ 'selected multi': 'selectedChanged'
270
+ },
271
+
272
+ ready: function() {
273
+ this.activateListener = this.activateHandler.bind(this);
274
+ this.itemFilter = this.filterItem.bind(this);
275
+ this.excludedLocalNamesChanged();
276
+ this.observer = new MutationObserver(this.updateSelected.bind(this));
277
+ if (!this.target) {
278
+ this.target = this;
279
+ }
280
+ },
281
+
282
+ /**
283
+ * Returns an array of all items.
284
+ *
285
+ * @property items
286
+ */
287
+ get items() {
288
+ if (!this.target) {
289
+ return [];
290
+ }
291
+ var nodes = this.target !== this ? (this.itemsSelector ?
292
+ this.target.querySelectorAll(this.itemsSelector) :
293
+ this.target.children) : this.$.items.getDistributedNodes();
294
+ return Array.prototype.filter.call(nodes, this.itemFilter);
295
+ },
296
+
297
+ filterItem: function(node) {
298
+ return !this._excludedNames[node.localName];
299
+ },
300
+
301
+ excludedLocalNamesChanged: function() {
302
+ this._excludedNames = {};
303
+ var s = this.defaultExcludedLocalNames;
304
+ if (this.excludedLocalNames) {
305
+ s += ' ' + this.excludedLocalNames;
306
+ }
307
+ s.split(/\s+/g).forEach(function(n) {
308
+ this._excludedNames[n] = 1;
309
+ }, this);
310
+ },
311
+
312
+ targetChanged: function(old) {
313
+ if (old) {
314
+ this.removeListener(old);
315
+ this.observer.disconnect();
316
+ this.clearSelection();
317
+ }
318
+ if (this.target) {
319
+ this.addListener(this.target);
320
+ this.observer.observe(this.target, {childList: true});
321
+ this.updateSelected();
322
+ }
323
+ },
324
+
325
+ addListener: function(node) {
326
+ Polymer.addEventListener(node, this.activateEvent, this.activateListener);
327
+ },
328
+
329
+ removeListener: function(node) {
330
+ Polymer.removeEventListener(node, this.activateEvent, this.activateListener);
331
+ },
332
+
333
+ /**
334
+ * Returns the selected item(s). If the `multi` property is true,
335
+ * this will return an array, otherwise it will return
336
+ * the selected item or undefined if there is no selection.
337
+ */
338
+ get selection() {
339
+ return this.$.selection.getSelection();
340
+ },
341
+
342
+ selectedChanged: function() {
343
+ // TODO(ffu): Right now this is the only way to know that the `selected`
344
+ // is an array and was mutated, as opposed to newly assigned.
345
+ if (arguments.length === 1) {
346
+ this.processSplices(arguments[0]);
347
+ } else {
348
+ this.updateSelected();
349
+ }
350
+ },
351
+
352
+ updateSelected: function() {
353
+ this.validateSelected();
354
+ if (this.multi) {
355
+ this.clearSelection(this.selected)
356
+ this.selected && this.selected.forEach(function(s) {
357
+ this.setValueSelected(s, true)
358
+ }, this);
359
+ } else {
360
+ this.valueToSelection(this.selected);
361
+ }
362
+ },
363
+
364
+ validateSelected: function() {
365
+ // convert to an array for multi-selection
366
+ if (this.multi && !Array.isArray(this.selected) &&
367
+ this.selected != null) {
368
+ this.selected = [this.selected];
369
+ // use the first selected in the array for single-selection
370
+ } else if (!this.multi && Array.isArray(this.selected)) {
371
+ var s = this.selected[0];
372
+ this.clearSelection([s]);
373
+ this.selected = s;
374
+ }
375
+ },
376
+
377
+ processSplices: function(splices) {
378
+ for (var i = 0, splice; splice = splices[i]; i++) {
379
+ for (var j = 0; j < splice.removed.length; j++) {
380
+ this.setValueSelected(splice.removed[j], false);
381
+ }
382
+ for (var j = 0; j < splice.addedCount; j++) {
383
+ this.setValueSelected(this.selected[splice.index + j], true);
384
+ }
385
+ }
386
+ },
387
+
388
+ clearSelection: function(excludes) {
389
+ this.$.selection.selection.slice().forEach(function(item) {
390
+ var v = this.valueForNode(item) || this.items.indexOf(item);
391
+ if (!excludes || excludes.indexOf(v) < 0) {
392
+ this.$.selection.setItemSelected(item, false);
393
+ }
394
+ }, this);
395
+ },
396
+
397
+ valueToSelection: function(value) {
398
+ var item = this.valueToItem(value);
399
+ this.$.selection.select(item);
400
+ },
401
+
402
+ setValueSelected: function(value, isSelected) {
403
+ var item = this.valueToItem(value);
404
+ if (isSelected ^ this.$.selection.isSelected(item)) {
405
+ this.$.selection.setItemSelected(item, isSelected);
406
+ }
407
+ },
408
+
409
+ updateSelectedItem: function() {
410
+ this.selectedItem = this.selection;
411
+ },
412
+
413
+ selectedItemChanged: function() {
414
+ if (this.selectedItem) {
415
+ var t = this.selectedItem.templateInstance;
416
+ this.selectedModel = t ? t.model : undefined;
417
+ } else {
418
+ this.selectedModel = null;
419
+ }
420
+ this.selectedIndex = this.selectedItem ?
421
+ parseInt(this.valueToIndex(this.selected)) : -1;
422
+ },
423
+
424
+ valueToItem: function(value) {
425
+ return (value === null || value === undefined) ?
426
+ null : this.items[this.valueToIndex(value)];
427
+ },
428
+
429
+ valueToIndex: function(value) {
430
+ // find an item with value == value and return it's index
431
+ for (var i=0, items=this.items, c; (c=items[i]); i++) {
432
+ if (this.valueForNode(c) == value) {
433
+ return i;
434
+ }
435
+ }
436
+ // if no item found, the value itself is probably the index
437
+ return value;
438
+ },
439
+
440
+ valueForNode: function(node) {
441
+ return node[this.valueattr] || node.getAttribute(this.valueattr);
442
+ },
443
+
444
+ // events fired from <core-selection> object
445
+ selectionSelect: function(e, detail) {
446
+ this.updateSelectedItem();
447
+ if (detail.item) {
448
+ this.applySelection(detail.item, detail.isSelected);
449
+ }
450
+ },
451
+
452
+ applySelection: function(item, isSelected) {
453
+ if (this.selectedClass) {
454
+ item.classList.toggle(this.selectedClass, isSelected);
455
+ }
456
+ if (this.selectedProperty) {
457
+ item[this.selectedProperty] = isSelected;
458
+ }
459
+ if (this.selectedAttribute && item.setAttribute) {
460
+ if (isSelected) {
461
+ item.setAttribute(this.selectedAttribute, '');
462
+ } else {
463
+ item.removeAttribute(this.selectedAttribute);
464
+ }
465
+ }
466
+ },
467
+
468
+ // event fired from host
469
+ activateHandler: function(e) {
470
+ if (!this.notap) {
471
+ var i = this.findDistributedTarget(e.target, this.items);
472
+ if (i >= 0) {
473
+ var item = this.items[i];
474
+ var s = this.valueForNode(item) || i;
475
+ if (this.multi) {
476
+ if (this.selected) {
477
+ this.addRemoveSelected(s);
478
+ } else {
479
+ this.selected = [s];
480
+ }
481
+ } else {
482
+ this.selected = s;
483
+ }
484
+ this.asyncFire('core-activate', {item: item});
485
+ }
486
+ }
487
+ },
488
+
489
+ addRemoveSelected: function(value) {
490
+ var i = this.selected.indexOf(value);
491
+ if (i >= 0) {
492
+ this.selected.splice(i, 1);
493
+ } else {
494
+ this.selected.push(value);
495
+ }
496
+ },
497
+
498
+ findDistributedTarget: function(target, nodes) {
499
+ // find first ancestor of target (including itself) that
500
+ // is in nodes, if any
501
+ while (target && target != this) {
502
+ var i = Array.prototype.indexOf.call(nodes, target);
503
+ if (i >= 0) {
504
+ return i;
505
+ }
506
+ target = target.parentNode;
507
+ }
508
+ },
509
+
510
+ selectIndex: function(index) {
511
+ var item = this.items[index];
512
+ if (item) {
513
+ this.selected = this.valueForNode(item) || index;
514
+ return item;
515
+ }
516
+ },
517
+
518
+ /**
519
+ * Selects the previous item. This should be used in single selection only.
520
+ *
521
+ * @method selectPrevious
522
+ * @param {boolean} wrapped if true and it is already at the first item,
523
+ * wrap to the end
524
+ * @returns the previous item or undefined if there is none
525
+ */
526
+ selectPrevious: function(wrapped) {
527
+ var i = wrapped && !this.selectedIndex ?
528
+ this.items.length - 1 : this.selectedIndex - 1;
529
+ return this.selectIndex(i);
530
+ },
531
+
532
+ /**
533
+ * Selects the next item. This should be used in single selection only.
534
+ *
535
+ * @method selectNext
536
+ * @param {boolean} wrapped if true and it is already at the last item,
537
+ * wrap to the front
538
+ * @returns the next item or undefined if there is none
539
+ */
540
+ selectNext: function(wrapped) {
541
+ var i = wrapped && this.selectedIndex >= this.items.length - 1 ?
542
+ 0 : this.selectedIndex + 1;
543
+ return this.selectIndex(i);
544
+ }
545
+
546
+ });
547
+ </script>
548
+ </polymer-element>
@@ -0,0 +1,106 @@
1
+ <!DOCTYPE html>
2
+ <!--
3
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7
+ Code distributed by Google as part of the polymer project is also
8
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9
+ -->
10
+ <html>
11
+ <head>
12
+ <title>Selector</title>
13
+ <script src="../webcomponentsjs/webcomponents.js"></script>
14
+ <link rel="import" href="core-selector.html">
15
+ </head>
16
+ <body unresolved>
17
+ <polymer-element name="selector-examples">
18
+ <template>
19
+ <style>
20
+ .list {
21
+ display: block;
22
+ border: 1px solid #ccc;
23
+ border-bottom: none;
24
+ background: #666;
25
+ color: white;
26
+ list-style: none;
27
+ margin: 0;
28
+ padding: 0;
29
+ }
30
+
31
+ .list > * {
32
+ height: 40px;
33
+ line-height: 40px;
34
+ padding: 0 20px;
35
+ border-bottom: 1px solid #ccc;
36
+ }
37
+
38
+ .list > *.core-selected {
39
+ background: #333;
40
+ }
41
+
42
+ li {
43
+ height: 30px;
44
+ }
45
+
46
+ li.core-selected:after {
47
+ content: "\2713";
48
+ position: absolute;
49
+ padding-left: 10px;
50
+ }
51
+ </style>
52
+
53
+ <h2>basic</h2>
54
+ <core-selector class="list" selected="0">
55
+ <div>Item 0</div>
56
+ <div>Item 1</div>
57
+ <div>Item 2</div>
58
+ <div>Item 3</div>
59
+ <div>Item 4</div>
60
+ </core-selector>
61
+
62
+ <h2>multi-selection</h2>
63
+ <core-selector class="list" selected="{{multiSelected}}" multi>
64
+ <div>Item 0</div>
65
+ <div>Item 1</div>
66
+ <div>Item 2</div>
67
+ <div>Item 3</div>
68
+ <div>Item 4</div>
69
+ </core-selector>
70
+
71
+ <h2>list</h2>
72
+ <core-selector target="{{$.list}}" selected="0"></core-selector>
73
+ <ul id="list">
74
+ <li>Item 0</li>
75
+ <li>Item 1</li>
76
+ <li>Item 2</li>
77
+ <li>Item 3</li>
78
+ <li>Item 4</li>
79
+ </ul>
80
+
81
+ <h2>binding of a group of radio buttons to a variable</h2>
82
+ <core-selector target="{{$.myForm}}" itemsSelector="input[type=radio]"
83
+ selected="{{color}}" valueattr="value" selectedProperty="checked"
84
+ activateEvent="change"></core-selector>
85
+ <form id="myForm">
86
+ <label><input type="radio" name="color" value="red"> Red</label> <br>
87
+ <label><input type="radio" name="color" value="green"> Green</label> <br>
88
+ <label><input type="radio" name="color" value="blue"> Blue</label> <br>
89
+ <p>color = {{color}}</p>
90
+ </form>
91
+
92
+ </template>
93
+
94
+ <script>
95
+ Polymer('selector-examples', {
96
+ ready: function() {
97
+ this.multiSelected = [1, 3];
98
+ this.color = 'green';
99
+ }
100
+ });
101
+ </script>
102
+ </polymer-element>
103
+
104
+ <selector-examples></selector-examples>
105
+ </body>
106
+ </html>
@@ -0,0 +1,22 @@
1
+ <!doctype html>
2
+ <!--
3
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE
5
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS
6
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
7
+ Code distributed by Google as part of the polymer project is also
8
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS
9
+ -->
10
+ <html>
11
+ <head>
12
+
13
+ <script src="../webcomponentsjs/webcomponents.js"></script>
14
+ <link rel="import" href="../core-component-page/core-component-page.html">
15
+
16
+ </head>
17
+ <body unresolved>
18
+
19
+ <core-component-page></core-component-page>
20
+
21
+ </body>
22
+ </html>
@@ -0,0 +1,20 @@
1
+ <!--
2
+ @license
3
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7
+ Code distributed by Google as part of the polymer project is also
8
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9
+ -->
10
+ <x-meta id="core-selector" label="Selector" group="Core" isContainer>
11
+
12
+ <template>
13
+ <core-selector selected="0" style="width:100%;height:50px;"></core-selector>
14
+ </template>
15
+
16
+ <template>
17
+ <link rel="import" href="core-selector.html">
18
+ </template>
19
+
20
+ </x-meta>