polymer-gold-rails 1.0.0.pre.rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +36 -0
- data/Rakefile +1 -0
- data/app/assets/components/gold-cc-cvc-input/README.md +24 -0
- data/app/assets/components/gold-cc-cvc-input/bower.json +39 -0
- data/app/assets/components/gold-cc-cvc-input/cvc_hint.png +0 -0
- data/app/assets/components/gold-cc-cvc-input/cvc_hint_amex.png +0 -0
- data/app/assets/components/gold-cc-cvc-input/demo/index.html +54 -0
- data/app/assets/components/gold-cc-cvc-input/gold-cc-cvc-input.html +195 -0
- data/app/assets/components/gold-cc-cvc-input/hero.svg +36 -0
- data/app/assets/components/gold-cc-cvc-input/index.html +26 -0
- data/app/assets/components/gold-cc-cvc-input/test/basic.html +125 -0
- data/app/assets/components/gold-cc-cvc-input/test/index.html +25 -0
- data/app/assets/components/gold-cc-expiration-input/README.md +10 -0
- data/app/assets/components/gold-cc-expiration-input/bower.json +40 -0
- data/app/assets/components/gold-cc-expiration-input/date-input.html +157 -0
- data/app/assets/components/gold-cc-expiration-input/date-validator.html +38 -0
- data/app/assets/components/gold-cc-expiration-input/demo/index.html +53 -0
- data/app/assets/components/gold-cc-expiration-input/gold-cc-expiration-input.html +131 -0
- data/app/assets/components/gold-cc-expiration-input/hero.svg +58 -0
- data/app/assets/components/gold-cc-expiration-input/index.html +28 -0
- data/app/assets/components/gold-cc-expiration-input/test/basic.html +126 -0
- data/app/assets/components/gold-cc-expiration-input/test/index.html +25 -0
- data/app/assets/components/gold-cc-input/README.md +9 -0
- data/app/assets/components/gold-cc-input/bower.json +39 -0
- data/app/assets/components/gold-cc-input/cc-validator.js +192 -0
- data/app/assets/components/gold-cc-input/demo/index.html +48 -0
- data/app/assets/components/gold-cc-input/gold-cc-input.html +215 -0
- data/app/assets/components/gold-cc-input/hero.svg +52 -0
- data/app/assets/components/gold-cc-input/images/amex.png +0 -0
- data/app/assets/components/gold-cc-input/images/diners_club.png +0 -0
- data/app/assets/components/gold-cc-input/images/discover.png +0 -0
- data/app/assets/components/gold-cc-input/images/jcb.png +0 -0
- data/app/assets/components/gold-cc-input/images/mastercard.png +0 -0
- data/app/assets/components/gold-cc-input/images/visa.png +0 -0
- data/app/assets/components/gold-cc-input/index.html +28 -0
- data/app/assets/components/gold-cc-input/test/basic.html +136 -0
- data/app/assets/components/gold-cc-input/test/index.html +25 -0
- data/app/assets/components/gold-elements/README.md +12 -0
- data/app/assets/components/gold-elements/bower.json +42 -0
- data/app/assets/components/gold-elements/demo/complex-form.html +127 -0
- data/app/assets/components/gold-elements/demo/index.html +94 -0
- data/app/assets/components/gold-elements/demo/item-card.html +59 -0
- data/app/assets/components/gold-elements/demo/simple-form.css +55 -0
- data/app/assets/components/gold-elements/demo/simple-form.html +93 -0
- data/app/assets/components/gold-elements/screenshot.png +0 -0
- data/app/assets/components/gold-email-input/README.md +8 -0
- data/app/assets/components/gold-email-input/bower.json +40 -0
- data/app/assets/components/gold-email-input/demo/index.html +46 -0
- data/app/assets/components/gold-email-input/email-validator.html +31 -0
- data/app/assets/components/gold-email-input/gold-email-input.html +108 -0
- data/app/assets/components/gold-email-input/hero.svg +59 -0
- data/app/assets/components/gold-email-input/index.html +28 -0
- data/app/assets/components/gold-email-input/test/basic.html +97 -0
- data/app/assets/components/gold-email-input/test/index.html +25 -0
- data/app/assets/components/gold-phone-input/README.md +13 -0
- data/app/assets/components/gold-phone-input/bower.json +39 -0
- data/app/assets/components/gold-phone-input/demo/index.html +53 -0
- data/app/assets/components/gold-phone-input/gold-phone-input.html +197 -0
- data/app/assets/components/gold-phone-input/hero.svg +63 -0
- data/app/assets/components/gold-phone-input/index.html +28 -0
- data/app/assets/components/gold-phone-input/test/basic.html +117 -0
- data/app/assets/components/gold-phone-input/test/index.html +25 -0
- data/app/assets/components/gold-zip-input/README.md +8 -0
- data/app/assets/components/gold-zip-input/bower.json +40 -0
- data/app/assets/components/gold-zip-input/demo/index.html +54 -0
- data/app/assets/components/gold-zip-input/gold-zip-input.html +113 -0
- data/app/assets/components/gold-zip-input/hero.svg +43 -0
- data/app/assets/components/gold-zip-input/index.html +28 -0
- data/app/assets/components/gold-zip-input/test/basic.html +116 -0
- data/app/assets/components/gold-zip-input/test/index.html +25 -0
- data/app/assets/components/gold-zip-input/zip-validator.html +32 -0
- data/app/assets/components/iron-autogrow-textarea/README.md +24 -0
- data/app/assets/components/iron-autogrow-textarea/bower.json +37 -0
- data/app/assets/components/iron-autogrow-textarea/demo/index.html +81 -0
- data/app/assets/components/iron-autogrow-textarea/hero.svg +33 -0
- data/app/assets/components/iron-autogrow-textarea/index.html +30 -0
- data/app/assets/components/iron-autogrow-textarea/iron-autogrow-textarea.html +263 -0
- data/app/assets/components/iron-autogrow-textarea/test/basic.html +94 -0
- data/app/assets/components/iron-autogrow-textarea/test/index.html +25 -0
- data/app/assets/components/iron-flex-layout/README.md +4 -0
- data/app/assets/components/iron-flex-layout/bower.json +21 -0
- data/app/assets/components/iron-flex-layout/classes/iron-flex-layout.html +307 -0
- data/app/assets/components/iron-flex-layout/classes/iron-shadow-flex-layout.html +302 -0
- data/app/assets/components/iron-flex-layout/demo/index.html +40 -0
- data/app/assets/components/iron-flex-layout/demo/x-app.html +106 -0
- data/app/assets/components/iron-flex-layout/iron-flex-layout.html +313 -0
- data/app/assets/components/iron-form-element-behavior/README.md +2 -0
- data/app/assets/components/iron-form-element-behavior/bower.json +27 -0
- data/app/assets/components/iron-form-element-behavior/demo/index.html +53 -0
- data/app/assets/components/iron-form-element-behavior/demo/simple-element.html +27 -0
- data/app/assets/components/iron-form-element-behavior/demo/simple-form.html +42 -0
- data/app/assets/components/iron-form-element-behavior/index.html +30 -0
- data/app/assets/components/iron-form-element-behavior/iron-form-element-behavior.html +50 -0
- data/app/assets/components/iron-icon/README.md +56 -0
- data/app/assets/components/iron-icon/bower.json +29 -0
- data/app/assets/components/iron-icon/demo/index.html +28 -0
- data/app/assets/components/iron-icon/demo/location.png +0 -0
- data/app/assets/components/iron-icon/hero.svg +19 -0
- data/app/assets/components/iron-icon/index.html +26 -0
- data/app/assets/components/iron-icon/iron-icon.html +187 -0
- data/app/assets/components/iron-icon/test/index.html +31 -0
- data/app/assets/components/iron-icon/test/iron-icon.html +120 -0
- data/app/assets/components/iron-input/README.md +16 -0
- data/app/assets/components/iron-input/bower.json +36 -0
- data/app/assets/components/iron-input/demo/index.html +87 -0
- data/app/assets/components/iron-input/hero.svg +19 -0
- data/app/assets/components/iron-input/index.html +30 -0
- data/app/assets/components/iron-input/iron-input.html +235 -0
- data/app/assets/components/iron-input/test/index.html +24 -0
- data/app/assets/components/iron-input/test/iron-input.html +139 -0
- data/app/assets/components/iron-input/test/letters-only.html +30 -0
- data/app/assets/components/iron-meta/README.md +46 -0
- data/app/assets/components/iron-meta/bower.json +28 -0
- data/app/assets/components/iron-meta/demo/index.html +45 -0
- data/app/assets/components/iron-meta/hero.svg +33 -0
- data/app/assets/components/iron-meta/index.html +27 -0
- data/app/assets/components/iron-meta/iron-meta.html +352 -0
- data/app/assets/components/iron-meta/test/basic.html +48 -0
- data/app/assets/components/iron-meta/test/index.html +30 -0
- data/app/assets/components/iron-meta/test/iron-meta.html +186 -0
- data/app/assets/components/iron-validatable-behavior/README.md +3 -0
- data/app/assets/components/iron-validatable-behavior/bower.json +35 -0
- data/app/assets/components/iron-validatable-behavior/demo/cats-only.html +46 -0
- data/app/assets/components/iron-validatable-behavior/demo/index.html +71 -0
- data/app/assets/components/iron-validatable-behavior/demo/validatable-input.html +46 -0
- data/app/assets/components/iron-validatable-behavior/index.html +30 -0
- data/app/assets/components/iron-validatable-behavior/iron-validatable-behavior.html +101 -0
- data/app/assets/components/iron-validatable-behavior/test/index.html +35 -0
- data/app/assets/components/iron-validatable-behavior/test/iron-validatable-behavior.html +52 -0
- data/app/assets/components/iron-validatable-behavior/test/test-validatable.html +28 -0
- data/app/assets/components/iron-validator-behavior/README.md +4 -0
- data/app/assets/components/iron-validator-behavior/bower.json +34 -0
- data/app/assets/components/iron-validator-behavior/demo/cats-only.html +46 -0
- data/app/assets/components/iron-validator-behavior/demo/index.html +144 -0
- data/app/assets/components/iron-validator-behavior/index.html +30 -0
- data/app/assets/components/iron-validator-behavior/iron-validator-behavior.html +61 -0
- data/app/assets/components/iron-validator-behavior/test/index.html +34 -0
- data/app/assets/components/iron-validator-behavior/test/iron-validator-behavior.html +47 -0
- data/app/assets/components/iron-validator-behavior/test/simple-validator.html +26 -0
- data/app/assets/components/paper-input/README.md +5 -0
- data/app/assets/components/paper-input/all-imports.html +12 -0
- data/app/assets/components/paper-input/bower.json +44 -0
- data/app/assets/components/paper-input/demo/index.html +96 -0
- data/app/assets/components/paper-input/demo/ssn-input.html +94 -0
- data/app/assets/components/paper-input/demo/ssn-validator.html +31 -0
- data/app/assets/components/paper-input/hero.svg +19 -0
- data/app/assets/components/paper-input/index.html +28 -0
- data/app/assets/components/paper-input/paper-input-addon-behavior.html +47 -0
- data/app/assets/components/paper-input/paper-input-behavior.html +317 -0
- data/app/assets/components/paper-input/paper-input-char-counter.html +95 -0
- data/app/assets/components/paper-input/paper-input-container.html +495 -0
- data/app/assets/components/paper-input/paper-input-error.html +99 -0
- data/app/assets/components/paper-input/paper-input.html +126 -0
- data/app/assets/components/paper-input/paper-textarea.html +106 -0
- data/app/assets/components/paper-input/test/index.html +28 -0
- data/app/assets/components/paper-input/test/letters-only.html +30 -0
- data/app/assets/components/paper-input/test/paper-input-char-counter.html +112 -0
- data/app/assets/components/paper-input/test/paper-input-container.html +237 -0
- data/app/assets/components/paper-input/test/paper-input-error.html +60 -0
- data/app/assets/components/paper-input/test/paper-input.html +213 -0
- data/app/assets/components/paper-input/test/paper-textarea.html +169 -0
- data/app/assets/components/paper-styles/README.md +3 -0
- data/app/assets/components/paper-styles/bower.json +27 -0
- data/app/assets/components/paper-styles/classes/global.html +96 -0
- data/app/assets/components/paper-styles/classes/shadow-layout.html +302 -0
- data/app/assets/components/paper-styles/classes/shadow.html +39 -0
- data/app/assets/components/paper-styles/classes/typography.html +171 -0
- data/app/assets/components/paper-styles/color.html +333 -0
- data/app/assets/components/paper-styles/default-theme.html +39 -0
- data/app/assets/components/paper-styles/demo-pages.html +72 -0
- data/app/assets/components/paper-styles/demo.css +25 -0
- data/app/assets/components/paper-styles/paper-styles-classes.html +14 -0
- data/app/assets/components/paper-styles/paper-styles.html +17 -0
- data/app/assets/components/paper-styles/shadow.html +61 -0
- data/app/assets/components/paper-styles/typography.html +240 -0
- data/app/assets/components/polymer/LICENSE.txt +27 -0
- data/app/assets/components/polymer/bower.json +26 -0
- data/app/assets/components/polymer/build.log +27 -0
- data/app/assets/components/polymer/polymer-micro.html +523 -0
- data/app/assets/components/polymer/polymer-mini.html +1368 -0
- data/app/assets/components/polymer/polymer.html +3768 -0
- data/app/assets/components/webcomponentsjs/CustomElements.js +956 -0
- data/app/assets/components/webcomponentsjs/CustomElements.min.js +11 -0
- data/app/assets/components/webcomponentsjs/HTMLImports.js +1078 -0
- data/app/assets/components/webcomponentsjs/HTMLImports.min.js +11 -0
- data/app/assets/components/webcomponentsjs/MutationObserver.js +344 -0
- data/app/assets/components/webcomponentsjs/MutationObserver.min.js +11 -0
- data/app/assets/components/webcomponentsjs/README.md +125 -0
- data/app/assets/components/webcomponentsjs/ShadowDOM.js +4414 -0
- data/app/assets/components/webcomponentsjs/ShadowDOM.min.js +15 -0
- data/app/assets/components/webcomponentsjs/bower.json +14 -0
- data/app/assets/components/webcomponentsjs/build.log +33 -0
- data/app/assets/components/webcomponentsjs/package.json +31 -0
- data/app/assets/components/webcomponentsjs/webcomponents-lite.js +2300 -0
- data/app/assets/components/webcomponentsjs/webcomponents-lite.min.js +13 -0
- data/app/assets/components/webcomponentsjs/webcomponents.js +7112 -0
- data/app/assets/components/webcomponentsjs/webcomponents.min.js +15 -0
- data/lib/polymer-gold-rails.rb +2 -0
- data/lib/polymer-gold-rails/enigne.rb +4 -0
- data/lib/polymer-gold-rails/version.rb +3 -0
- 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,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>
|