polymer-gold-rails 1.0.0.pre.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +36 -0
  3. data/Rakefile +1 -0
  4. data/app/assets/components/gold-cc-cvc-input/README.md +24 -0
  5. data/app/assets/components/gold-cc-cvc-input/bower.json +39 -0
  6. data/app/assets/components/gold-cc-cvc-input/cvc_hint.png +0 -0
  7. data/app/assets/components/gold-cc-cvc-input/cvc_hint_amex.png +0 -0
  8. data/app/assets/components/gold-cc-cvc-input/demo/index.html +54 -0
  9. data/app/assets/components/gold-cc-cvc-input/gold-cc-cvc-input.html +195 -0
  10. data/app/assets/components/gold-cc-cvc-input/hero.svg +36 -0
  11. data/app/assets/components/gold-cc-cvc-input/index.html +26 -0
  12. data/app/assets/components/gold-cc-cvc-input/test/basic.html +125 -0
  13. data/app/assets/components/gold-cc-cvc-input/test/index.html +25 -0
  14. data/app/assets/components/gold-cc-expiration-input/README.md +10 -0
  15. data/app/assets/components/gold-cc-expiration-input/bower.json +40 -0
  16. data/app/assets/components/gold-cc-expiration-input/date-input.html +157 -0
  17. data/app/assets/components/gold-cc-expiration-input/date-validator.html +38 -0
  18. data/app/assets/components/gold-cc-expiration-input/demo/index.html +53 -0
  19. data/app/assets/components/gold-cc-expiration-input/gold-cc-expiration-input.html +131 -0
  20. data/app/assets/components/gold-cc-expiration-input/hero.svg +58 -0
  21. data/app/assets/components/gold-cc-expiration-input/index.html +28 -0
  22. data/app/assets/components/gold-cc-expiration-input/test/basic.html +126 -0
  23. data/app/assets/components/gold-cc-expiration-input/test/index.html +25 -0
  24. data/app/assets/components/gold-cc-input/README.md +9 -0
  25. data/app/assets/components/gold-cc-input/bower.json +39 -0
  26. data/app/assets/components/gold-cc-input/cc-validator.js +192 -0
  27. data/app/assets/components/gold-cc-input/demo/index.html +48 -0
  28. data/app/assets/components/gold-cc-input/gold-cc-input.html +215 -0
  29. data/app/assets/components/gold-cc-input/hero.svg +52 -0
  30. data/app/assets/components/gold-cc-input/images/amex.png +0 -0
  31. data/app/assets/components/gold-cc-input/images/diners_club.png +0 -0
  32. data/app/assets/components/gold-cc-input/images/discover.png +0 -0
  33. data/app/assets/components/gold-cc-input/images/jcb.png +0 -0
  34. data/app/assets/components/gold-cc-input/images/mastercard.png +0 -0
  35. data/app/assets/components/gold-cc-input/images/visa.png +0 -0
  36. data/app/assets/components/gold-cc-input/index.html +28 -0
  37. data/app/assets/components/gold-cc-input/test/basic.html +136 -0
  38. data/app/assets/components/gold-cc-input/test/index.html +25 -0
  39. data/app/assets/components/gold-elements/README.md +12 -0
  40. data/app/assets/components/gold-elements/bower.json +42 -0
  41. data/app/assets/components/gold-elements/demo/complex-form.html +127 -0
  42. data/app/assets/components/gold-elements/demo/index.html +94 -0
  43. data/app/assets/components/gold-elements/demo/item-card.html +59 -0
  44. data/app/assets/components/gold-elements/demo/simple-form.css +55 -0
  45. data/app/assets/components/gold-elements/demo/simple-form.html +93 -0
  46. data/app/assets/components/gold-elements/screenshot.png +0 -0
  47. data/app/assets/components/gold-email-input/README.md +8 -0
  48. data/app/assets/components/gold-email-input/bower.json +40 -0
  49. data/app/assets/components/gold-email-input/demo/index.html +46 -0
  50. data/app/assets/components/gold-email-input/email-validator.html +31 -0
  51. data/app/assets/components/gold-email-input/gold-email-input.html +108 -0
  52. data/app/assets/components/gold-email-input/hero.svg +59 -0
  53. data/app/assets/components/gold-email-input/index.html +28 -0
  54. data/app/assets/components/gold-email-input/test/basic.html +97 -0
  55. data/app/assets/components/gold-email-input/test/index.html +25 -0
  56. data/app/assets/components/gold-phone-input/README.md +13 -0
  57. data/app/assets/components/gold-phone-input/bower.json +39 -0
  58. data/app/assets/components/gold-phone-input/demo/index.html +53 -0
  59. data/app/assets/components/gold-phone-input/gold-phone-input.html +197 -0
  60. data/app/assets/components/gold-phone-input/hero.svg +63 -0
  61. data/app/assets/components/gold-phone-input/index.html +28 -0
  62. data/app/assets/components/gold-phone-input/test/basic.html +117 -0
  63. data/app/assets/components/gold-phone-input/test/index.html +25 -0
  64. data/app/assets/components/gold-zip-input/README.md +8 -0
  65. data/app/assets/components/gold-zip-input/bower.json +40 -0
  66. data/app/assets/components/gold-zip-input/demo/index.html +54 -0
  67. data/app/assets/components/gold-zip-input/gold-zip-input.html +113 -0
  68. data/app/assets/components/gold-zip-input/hero.svg +43 -0
  69. data/app/assets/components/gold-zip-input/index.html +28 -0
  70. data/app/assets/components/gold-zip-input/test/basic.html +116 -0
  71. data/app/assets/components/gold-zip-input/test/index.html +25 -0
  72. data/app/assets/components/gold-zip-input/zip-validator.html +32 -0
  73. data/app/assets/components/iron-autogrow-textarea/README.md +24 -0
  74. data/app/assets/components/iron-autogrow-textarea/bower.json +37 -0
  75. data/app/assets/components/iron-autogrow-textarea/demo/index.html +81 -0
  76. data/app/assets/components/iron-autogrow-textarea/hero.svg +33 -0
  77. data/app/assets/components/iron-autogrow-textarea/index.html +30 -0
  78. data/app/assets/components/iron-autogrow-textarea/iron-autogrow-textarea.html +263 -0
  79. data/app/assets/components/iron-autogrow-textarea/test/basic.html +94 -0
  80. data/app/assets/components/iron-autogrow-textarea/test/index.html +25 -0
  81. data/app/assets/components/iron-flex-layout/README.md +4 -0
  82. data/app/assets/components/iron-flex-layout/bower.json +21 -0
  83. data/app/assets/components/iron-flex-layout/classes/iron-flex-layout.html +307 -0
  84. data/app/assets/components/iron-flex-layout/classes/iron-shadow-flex-layout.html +302 -0
  85. data/app/assets/components/iron-flex-layout/demo/index.html +40 -0
  86. data/app/assets/components/iron-flex-layout/demo/x-app.html +106 -0
  87. data/app/assets/components/iron-flex-layout/iron-flex-layout.html +313 -0
  88. data/app/assets/components/iron-form-element-behavior/README.md +2 -0
  89. data/app/assets/components/iron-form-element-behavior/bower.json +27 -0
  90. data/app/assets/components/iron-form-element-behavior/demo/index.html +53 -0
  91. data/app/assets/components/iron-form-element-behavior/demo/simple-element.html +27 -0
  92. data/app/assets/components/iron-form-element-behavior/demo/simple-form.html +42 -0
  93. data/app/assets/components/iron-form-element-behavior/index.html +30 -0
  94. data/app/assets/components/iron-form-element-behavior/iron-form-element-behavior.html +50 -0
  95. data/app/assets/components/iron-icon/README.md +56 -0
  96. data/app/assets/components/iron-icon/bower.json +29 -0
  97. data/app/assets/components/iron-icon/demo/index.html +28 -0
  98. data/app/assets/components/iron-icon/demo/location.png +0 -0
  99. data/app/assets/components/iron-icon/hero.svg +19 -0
  100. data/app/assets/components/iron-icon/index.html +26 -0
  101. data/app/assets/components/iron-icon/iron-icon.html +187 -0
  102. data/app/assets/components/iron-icon/test/index.html +31 -0
  103. data/app/assets/components/iron-icon/test/iron-icon.html +120 -0
  104. data/app/assets/components/iron-input/README.md +16 -0
  105. data/app/assets/components/iron-input/bower.json +36 -0
  106. data/app/assets/components/iron-input/demo/index.html +87 -0
  107. data/app/assets/components/iron-input/hero.svg +19 -0
  108. data/app/assets/components/iron-input/index.html +30 -0
  109. data/app/assets/components/iron-input/iron-input.html +235 -0
  110. data/app/assets/components/iron-input/test/index.html +24 -0
  111. data/app/assets/components/iron-input/test/iron-input.html +139 -0
  112. data/app/assets/components/iron-input/test/letters-only.html +30 -0
  113. data/app/assets/components/iron-meta/README.md +46 -0
  114. data/app/assets/components/iron-meta/bower.json +28 -0
  115. data/app/assets/components/iron-meta/demo/index.html +45 -0
  116. data/app/assets/components/iron-meta/hero.svg +33 -0
  117. data/app/assets/components/iron-meta/index.html +27 -0
  118. data/app/assets/components/iron-meta/iron-meta.html +352 -0
  119. data/app/assets/components/iron-meta/test/basic.html +48 -0
  120. data/app/assets/components/iron-meta/test/index.html +30 -0
  121. data/app/assets/components/iron-meta/test/iron-meta.html +186 -0
  122. data/app/assets/components/iron-validatable-behavior/README.md +3 -0
  123. data/app/assets/components/iron-validatable-behavior/bower.json +35 -0
  124. data/app/assets/components/iron-validatable-behavior/demo/cats-only.html +46 -0
  125. data/app/assets/components/iron-validatable-behavior/demo/index.html +71 -0
  126. data/app/assets/components/iron-validatable-behavior/demo/validatable-input.html +46 -0
  127. data/app/assets/components/iron-validatable-behavior/index.html +30 -0
  128. data/app/assets/components/iron-validatable-behavior/iron-validatable-behavior.html +101 -0
  129. data/app/assets/components/iron-validatable-behavior/test/index.html +35 -0
  130. data/app/assets/components/iron-validatable-behavior/test/iron-validatable-behavior.html +52 -0
  131. data/app/assets/components/iron-validatable-behavior/test/test-validatable.html +28 -0
  132. data/app/assets/components/iron-validator-behavior/README.md +4 -0
  133. data/app/assets/components/iron-validator-behavior/bower.json +34 -0
  134. data/app/assets/components/iron-validator-behavior/demo/cats-only.html +46 -0
  135. data/app/assets/components/iron-validator-behavior/demo/index.html +144 -0
  136. data/app/assets/components/iron-validator-behavior/index.html +30 -0
  137. data/app/assets/components/iron-validator-behavior/iron-validator-behavior.html +61 -0
  138. data/app/assets/components/iron-validator-behavior/test/index.html +34 -0
  139. data/app/assets/components/iron-validator-behavior/test/iron-validator-behavior.html +47 -0
  140. data/app/assets/components/iron-validator-behavior/test/simple-validator.html +26 -0
  141. data/app/assets/components/paper-input/README.md +5 -0
  142. data/app/assets/components/paper-input/all-imports.html +12 -0
  143. data/app/assets/components/paper-input/bower.json +44 -0
  144. data/app/assets/components/paper-input/demo/index.html +96 -0
  145. data/app/assets/components/paper-input/demo/ssn-input.html +94 -0
  146. data/app/assets/components/paper-input/demo/ssn-validator.html +31 -0
  147. data/app/assets/components/paper-input/hero.svg +19 -0
  148. data/app/assets/components/paper-input/index.html +28 -0
  149. data/app/assets/components/paper-input/paper-input-addon-behavior.html +47 -0
  150. data/app/assets/components/paper-input/paper-input-behavior.html +317 -0
  151. data/app/assets/components/paper-input/paper-input-char-counter.html +95 -0
  152. data/app/assets/components/paper-input/paper-input-container.html +495 -0
  153. data/app/assets/components/paper-input/paper-input-error.html +99 -0
  154. data/app/assets/components/paper-input/paper-input.html +126 -0
  155. data/app/assets/components/paper-input/paper-textarea.html +106 -0
  156. data/app/assets/components/paper-input/test/index.html +28 -0
  157. data/app/assets/components/paper-input/test/letters-only.html +30 -0
  158. data/app/assets/components/paper-input/test/paper-input-char-counter.html +112 -0
  159. data/app/assets/components/paper-input/test/paper-input-container.html +237 -0
  160. data/app/assets/components/paper-input/test/paper-input-error.html +60 -0
  161. data/app/assets/components/paper-input/test/paper-input.html +213 -0
  162. data/app/assets/components/paper-input/test/paper-textarea.html +169 -0
  163. data/app/assets/components/paper-styles/README.md +3 -0
  164. data/app/assets/components/paper-styles/bower.json +27 -0
  165. data/app/assets/components/paper-styles/classes/global.html +96 -0
  166. data/app/assets/components/paper-styles/classes/shadow-layout.html +302 -0
  167. data/app/assets/components/paper-styles/classes/shadow.html +39 -0
  168. data/app/assets/components/paper-styles/classes/typography.html +171 -0
  169. data/app/assets/components/paper-styles/color.html +333 -0
  170. data/app/assets/components/paper-styles/default-theme.html +39 -0
  171. data/app/assets/components/paper-styles/demo-pages.html +72 -0
  172. data/app/assets/components/paper-styles/demo.css +25 -0
  173. data/app/assets/components/paper-styles/paper-styles-classes.html +14 -0
  174. data/app/assets/components/paper-styles/paper-styles.html +17 -0
  175. data/app/assets/components/paper-styles/shadow.html +61 -0
  176. data/app/assets/components/paper-styles/typography.html +240 -0
  177. data/app/assets/components/polymer/LICENSE.txt +27 -0
  178. data/app/assets/components/polymer/bower.json +26 -0
  179. data/app/assets/components/polymer/build.log +27 -0
  180. data/app/assets/components/polymer/polymer-micro.html +523 -0
  181. data/app/assets/components/polymer/polymer-mini.html +1368 -0
  182. data/app/assets/components/polymer/polymer.html +3768 -0
  183. data/app/assets/components/webcomponentsjs/CustomElements.js +956 -0
  184. data/app/assets/components/webcomponentsjs/CustomElements.min.js +11 -0
  185. data/app/assets/components/webcomponentsjs/HTMLImports.js +1078 -0
  186. data/app/assets/components/webcomponentsjs/HTMLImports.min.js +11 -0
  187. data/app/assets/components/webcomponentsjs/MutationObserver.js +344 -0
  188. data/app/assets/components/webcomponentsjs/MutationObserver.min.js +11 -0
  189. data/app/assets/components/webcomponentsjs/README.md +125 -0
  190. data/app/assets/components/webcomponentsjs/ShadowDOM.js +4414 -0
  191. data/app/assets/components/webcomponentsjs/ShadowDOM.min.js +15 -0
  192. data/app/assets/components/webcomponentsjs/bower.json +14 -0
  193. data/app/assets/components/webcomponentsjs/build.log +33 -0
  194. data/app/assets/components/webcomponentsjs/package.json +31 -0
  195. data/app/assets/components/webcomponentsjs/webcomponents-lite.js +2300 -0
  196. data/app/assets/components/webcomponentsjs/webcomponents-lite.min.js +13 -0
  197. data/app/assets/components/webcomponentsjs/webcomponents.js +7112 -0
  198. data/app/assets/components/webcomponentsjs/webcomponents.min.js +15 -0
  199. data/lib/polymer-gold-rails.rb +2 -0
  200. data/lib/polymer-gold-rails/enigne.rb +4 -0
  201. data/lib/polymer-gold-rails/version.rb +3 -0
  202. metadata +312 -0
@@ -0,0 +1,30 @@
1
+ <!doctype html>
2
+ <!--
3
+ @license
4
+ Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
5
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
6
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
7
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
8
+ Code distributed by Google as part of the polymer project is also
9
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
10
+ -->
11
+ <html>
12
+ <head>
13
+
14
+ <meta charset="utf-8">
15
+ <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
16
+
17
+ <title>iron-validatable-behavior</title>
18
+
19
+ <script src="../webcomponentsjs/webcomponents-lite.js"></script>
20
+
21
+ <link rel="import" href="../polymer/polymer.html">
22
+ <link rel="import" href="../iron-component-page/iron-component-page.html">
23
+
24
+ </head>
25
+ <body>
26
+
27
+ <iron-component-page></iron-component-page>
28
+
29
+ </body>
30
+ </html>
@@ -0,0 +1,101 @@
1
+ <!--
2
+ @license
3
+ Copyright (c) 2015 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
+
11
+ <link rel="import" href="../polymer/polymer.html">
12
+ <link rel="import" href="../iron-meta/iron-meta.html">
13
+
14
+ <script>
15
+
16
+ /**
17
+ * Use `Polymer.IronValidatableBehavior` to implement an element that validates user input.
18
+ *
19
+ * ### Accessiblity
20
+ *
21
+ * Changing the `invalid` property, either manually or by calling `validate()` will update the
22
+ * `aria-invalid` attribute.
23
+ *
24
+ * @demo demo/index.html
25
+ * @polymerBehavior
26
+ */
27
+ Polymer.IronValidatableBehavior = {
28
+
29
+ properties: {
30
+
31
+ /**
32
+ * Namespace for this validator.
33
+ */
34
+ validatorType: {
35
+ type: String,
36
+ value: 'validator'
37
+ },
38
+
39
+ /**
40
+ * Name of the validator to use.
41
+ */
42
+ validator: {
43
+ type: String
44
+ },
45
+
46
+ /**
47
+ * True if the last call to `validate` is invalid.
48
+ */
49
+ invalid: {
50
+ notify: true,
51
+ reflectToAttribute: true,
52
+ type: Boolean,
53
+ value: false
54
+ },
55
+
56
+ _validatorMeta: {
57
+ type: Object
58
+ }
59
+
60
+ },
61
+
62
+ observers: [
63
+ '_invalidChanged(invalid)'
64
+ ],
65
+
66
+ get _validator() {
67
+ return this._validatorMeta && this._validatorMeta.byKey(this.validator);
68
+ },
69
+
70
+ ready: function() {
71
+ this._validatorMeta = new Polymer.IronMeta({type: this.validatorType});
72
+ },
73
+
74
+ _invalidChanged: function() {
75
+ if (this.invalid) {
76
+ this.setAttribute('aria-invalid', 'true');
77
+ } else {
78
+ this.removeAttribute('aria-invalid');
79
+ }
80
+ },
81
+
82
+ /**
83
+ * @return {boolean} True if the validator `validator` exists.
84
+ */
85
+ hasValidator: function() {
86
+ return this._validator != null;
87
+ },
88
+
89
+ /**
90
+ * @param {Object} values Passed to the validator's `validate()` function.
91
+ * @return {boolean} True if `values` is valid.
92
+ */
93
+ validate: function(values) {
94
+ var valid = this._validator && this._validator.validate(values);
95
+ this.invalid = !valid;
96
+ return valid;
97
+ }
98
+
99
+ };
100
+
101
+ </script>
@@ -0,0 +1,35 @@
1
+ <!doctype html>
2
+ <!--
3
+ @license
4
+ Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
5
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
6
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
7
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
8
+ Code distributed by Google as part of the polymer project is also
9
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
10
+ -->
11
+ <html>
12
+ <head>
13
+
14
+ <title>paper-validatable-behavior tests</title>
15
+
16
+ <meta charset="utf-8">
17
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
18
+ <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
19
+
20
+ <script src="../../web-component-tester/browser.js"></script>
21
+
22
+ </head>
23
+ <body>
24
+
25
+ <script>
26
+
27
+ /* no tests */
28
+ WCT.loadSuites([
29
+ 'iron-validatable-behavior.html'
30
+ ]);
31
+
32
+ </script>
33
+
34
+ </body>
35
+ </html>
@@ -0,0 +1,52 @@
1
+ <!doctype html>
2
+ <!--
3
+ Copyright (c) 2015 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
+
13
+ <title>iron-validatable-behavior tests</title>
14
+
15
+ <meta charset="utf-8">
16
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
17
+ <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
18
+
19
+ <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
20
+
21
+ <script src="../../web-component-tester/browser.js"></script>
22
+ <script src="../../test-fixture/test-fixture-mocha.js"></script>
23
+
24
+ <link rel="import" href="../../test-fixture/test-fixture.html">
25
+ <link rel="import" href="test-validatable.html">
26
+
27
+ </head>
28
+ <body>
29
+
30
+ <test-fixture id="basic">
31
+ <template>
32
+ <test-validatable></test-validatable>
33
+ </template>
34
+ </test-fixture>
35
+
36
+ <script>
37
+
38
+ suite('basic', function() {
39
+
40
+ test('setting `invalid` sets `aria-invalid=true`', function() {
41
+ var node = fixture('basic');
42
+ node.invalid = true;
43
+ assert.equal(node.getAttribute('aria-invalid'), 'true', 'aria-invalid is set');
44
+ node.invalid = false;
45
+ assert.isFalse(node.hasAttribute('aria-invalid'), 'aria-invalid is unset');
46
+ });
47
+
48
+ });
49
+
50
+ </script>
51
+
52
+ </body>
@@ -0,0 +1,28 @@
1
+ <!--
2
+ Copyright (c) 2015 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
+ <link rel="import" href="../iron-validatable-behavior.html">
10
+
11
+ <dom-module id="test-validatable">
12
+ <template>
13
+ <content></content>
14
+ </template>
15
+ </dom-module>
16
+
17
+ <script>
18
+
19
+ Polymer({
20
+
21
+ is: 'test-validatable',
22
+
23
+ behaviors: [
24
+ Polymer.IronValidatableBehavior
25
+ ]
26
+
27
+ });
28
+ </script>
@@ -0,0 +1,4 @@
1
+ # iron-validator-behavior
2
+ Use `Polymer.IronValidatorBehavior` to implement a custom input/form validator. Element instances
3
+ implementing this behavior will be registered for use in elements that implement
4
+ `Polymer.IronValidatableBehavior`.
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "iron-validator-behavior",
3
+ "version": "1.0.1",
4
+ "description": "Implements a input validator",
5
+ "authors": "The Polymer Authors",
6
+ "keywords": [
7
+ "web-components",
8
+ "polymer",
9
+ "iron",
10
+ "behavior"
11
+ ],
12
+ "main": [
13
+ "iron-validator-behavior.html"
14
+ ],
15
+ "private": true,
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git://github.com/PolymerElements/iron-validator-behavior.git"
19
+ },
20
+ "license": "http://polymer.github.io/LICENSE.txt",
21
+ "homepage": "https://github.com/PolymerElements/iron-validator-behavior",
22
+ "ignore": [],
23
+ "dependencies": {
24
+ "iron-meta": "PolymerElements/iron-meta#^1.0.0",
25
+ "polymer": "Polymer/polymer#^1.0.0"
26
+ },
27
+ "devDependencies": {
28
+ "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
29
+ "paper-styles": "PolymerElements/paper-styles#^1.0.0",
30
+ "test-fixture": "PolymerElements/test-fixture#^1.0.0",
31
+ "web-component-tester": "*",
32
+ "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
33
+ }
34
+ }
@@ -0,0 +1,46 @@
1
+ <!--
2
+ @license
3
+ Copyright (c) 2015 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
+
11
+ <link rel="import" href="../../polymer/polymer.html">
12
+ <link rel="import" href="../iron-validator-behavior.html">
13
+
14
+ <script>
15
+
16
+ Polymer({
17
+
18
+ is: 'cats-only',
19
+
20
+ behaviors: [
21
+ Polymer.IronValidatorBehavior
22
+ ],
23
+
24
+ validateObject: function(obj) {
25
+ var valid = true;
26
+ for (key in obj) {
27
+ if (obj[key] !== 'cats') {
28
+ valid = false;
29
+ break;
30
+ }
31
+ }
32
+ return valid;
33
+ },
34
+
35
+ validate: function(values) {
36
+ if (typeof values === 'object') {
37
+ return this.validateObject(values);
38
+ } else {
39
+ var value = Array.isArray(values) ? values.join('') : values;
40
+ return value.match(/^(c|ca|cat|cats)?$/) !== null;
41
+ }
42
+ }
43
+
44
+ });
45
+
46
+ </script>
@@ -0,0 +1,144 @@
1
+ <!doctype html>
2
+ <!--
3
+ @license
4
+ Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
5
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
6
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
7
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
8
+ Code distributed by Google as part of the polymer project is also
9
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
10
+ -->
11
+ <html>
12
+ <head>
13
+
14
+ <meta charset="utf-8">
15
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
16
+ <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
17
+
18
+ <title>iron-validator-behavior demo</title>
19
+
20
+ <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
21
+
22
+ <link rel="import" href="../../iron-meta/iron-meta.html">
23
+ <link rel="import" href="../../paper-styles/paper-styles.html">
24
+ <link rel="import" href="cats-only.html">
25
+
26
+ <link rel="stylesheet" href="../../paper-styles/demo.css">
27
+
28
+ <style>
29
+
30
+ .valid {
31
+ color: limegreen;
32
+ }
33
+
34
+ .invalid {
35
+ color: red;
36
+ }
37
+
38
+ </style>
39
+
40
+ </head>
41
+ <body>
42
+
43
+ <template is="dom-bind">
44
+
45
+ <cats-only></cats-only>
46
+
47
+ <section>
48
+
49
+ <p>
50
+ only type <code>cats</code>:
51
+
52
+ <input on-input="_onInput">
53
+
54
+ <span class="valid" hidden$="[[!valid]]">valid</span>
55
+ <span class="invalid" hidden$="[[valid]]">invalid</span>
56
+ </p>
57
+
58
+ </section>
59
+
60
+ <section>
61
+
62
+ <p>
63
+ only type <code>cats</code> across both input fields:
64
+
65
+ <span on-input="_onInputMulti">
66
+ <input>
67
+ <input>
68
+ </span>
69
+
70
+ <span class="valid" hidden$="[[!validMulti]]">valid</span>
71
+ <span class="invalid" hidden$="[[validMulti]]">invalid</span>
72
+ </p>
73
+
74
+ </section>
75
+
76
+ <section>
77
+
78
+ <p>
79
+ only type <code>cats</code> in the form:
80
+
81
+ <form on-submit="_onSubmit">
82
+ <label>
83
+ Type something: <input name="something">
84
+ </label>
85
+ <br>
86
+ <label>
87
+ Your favorite pet:
88
+ <select name="pet">
89
+ <option>iguanas</option>
90
+ <option>cats</option>
91
+ <option>pancakes</option>
92
+ </select>
93
+ </label>
94
+ <br>
95
+ <button type="submit">submit!</button>
96
+ <span class="valid" hidden$="[[!validForm]]">valid</span>
97
+ <span class="invalid" hidden$="[[validForm]]">invalid</span>
98
+ </form>
99
+
100
+ </p>
101
+
102
+ </section>
103
+
104
+ </template>
105
+
106
+ <script>
107
+
108
+ document.addEventListener('WebComponentsReady', function() {
109
+
110
+ var validator = new Polymer.IronMeta({type: 'validator'}).byKey('cats-only');
111
+
112
+ var scope = document.querySelector('template[is=dom-bind]');
113
+ scope.valid = scope.validMulti = scope.validForm = true;
114
+
115
+ scope._onInput = function(event) {
116
+ this.valid = validator.validate(event.target.value);
117
+ };
118
+
119
+ scope._onInputMulti = function(event) {
120
+ var values = [];
121
+ var nodes = Polymer.dom(event.currentTarget).querySelectorAll('input');
122
+ for (var node, i = 0; node = nodes[i]; i++) {
123
+ values.push(node.value);
124
+ }
125
+ this.validMulti = validator.validate(values);
126
+ };
127
+
128
+ scope._onSubmit = function(event) {
129
+ event.preventDefault();
130
+
131
+ var data = {};
132
+ for (var el, i = 0; el = event.target.elements[i]; i++) {
133
+ if (el.name) {
134
+ data[el.name] = el.value;
135
+ }
136
+ }
137
+ this.validForm = validator.validate(data);
138
+ };
139
+
140
+ });
141
+
142
+ </script>
143
+
144
+ </body>