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,25 @@
|
|
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
|
+
<meta charset="UTF-8">
|
14
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
|
15
|
+
<title>gold-cc-cvc-input tests</title>
|
16
|
+
<script src="../../web-component-tester/browser.js"></script>
|
17
|
+
</head>
|
18
|
+
<body>
|
19
|
+
<script>
|
20
|
+
WCT.loadSuites([
|
21
|
+
'basic.html'
|
22
|
+
]);
|
23
|
+
</script>
|
24
|
+
</body>
|
25
|
+
</html>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# gold-cc-expiration-input
|
2
|
+
|
3
|
+
`gold-cc-expiration-input` is a Material Design field for entering a valid,
|
4
|
+
future date representing a credit card's expiration date.
|
5
|
+
Example:
|
6
|
+
|
7
|
+
```html
|
8
|
+
<gold-cc-expiration-input></gold-cc-expiration-input>
|
9
|
+
<gold-cc-expiration-input value="11/15"></gold-cc-expiration-input>
|
10
|
+
```
|
@@ -0,0 +1,40 @@
|
|
1
|
+
{
|
2
|
+
"name": "gold-cc-expiration-input",
|
3
|
+
"version": "1.0.2",
|
4
|
+
"description": "A validating input for a credit card expiration date",
|
5
|
+
"authors": [
|
6
|
+
"The Polymer Authors"
|
7
|
+
],
|
8
|
+
"keywords": [
|
9
|
+
"web-components",
|
10
|
+
"polymer",
|
11
|
+
"gold",
|
12
|
+
"input"
|
13
|
+
],
|
14
|
+
"main": [
|
15
|
+
"gold-cc-expiration-input.html"
|
16
|
+
],
|
17
|
+
"private": true,
|
18
|
+
"repository": {
|
19
|
+
"type": "git",
|
20
|
+
"url": "git://github.com/PolymerElements/gold-cc-expiration-input.git"
|
21
|
+
},
|
22
|
+
"license": "http://polymer.github.io/LICENSE.txt",
|
23
|
+
"homepage": "https://github.com/PolymerElements/gold-cc-expiration-input",
|
24
|
+
"ignore": [],
|
25
|
+
"dependencies": {
|
26
|
+
"iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0",
|
27
|
+
"iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0",
|
28
|
+
"iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0",
|
29
|
+
"paper-input": "PolymerElements/paper-input#^1.0.0",
|
30
|
+
"paper-styles": "PolymerElements/paper-styles#^1.0.0",
|
31
|
+
"polymer": "Polymer/polymer#^1.0.0"
|
32
|
+
},
|
33
|
+
"devDependencies": {
|
34
|
+
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
|
35
|
+
"iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0",
|
36
|
+
"test-fixture": "PolymerElements/test-fixture#^1.0.0",
|
37
|
+
"web-component-tester": "*",
|
38
|
+
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
39
|
+
}
|
40
|
+
}
|
@@ -0,0 +1,157 @@
|
|
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
|
+
<link rel="import" href="../polymer/polymer.html">
|
11
|
+
<link rel="import" href="../iron-input/iron-input.html">
|
12
|
+
<link rel="import" href="../iron-flex-layout/classes/iron-flex-layout.html">
|
13
|
+
<link rel="import" href="../iron-validatable-behavior/iron-validatable-behavior.html">
|
14
|
+
<link rel="import" href="date-validator.html">
|
15
|
+
|
16
|
+
<dom-module id="date-input">
|
17
|
+
|
18
|
+
<style>
|
19
|
+
:host {
|
20
|
+
display: inline-block;
|
21
|
+
}
|
22
|
+
|
23
|
+
span {
|
24
|
+
@apply(--paper-input-container-font);
|
25
|
+
opacity: 0.33;
|
26
|
+
text-align: center;
|
27
|
+
}
|
28
|
+
|
29
|
+
input {
|
30
|
+
position: relative; /* to make a stacking context */
|
31
|
+
outline: none;
|
32
|
+
box-shadow: none;
|
33
|
+
padding: 0;
|
34
|
+
width: 100%;
|
35
|
+
background: transparent;
|
36
|
+
border: none;
|
37
|
+
color: var(--paper-input-container-input-color, --primary-text-color);
|
38
|
+
text-align: center;
|
39
|
+
|
40
|
+
@apply(--paper-font-subhead);
|
41
|
+
@apply(--paper-input-container-input);
|
42
|
+
}
|
43
|
+
|
44
|
+
</style>
|
45
|
+
|
46
|
+
<template>
|
47
|
+
<date-validator id="validator"></date-validator>
|
48
|
+
|
49
|
+
<span aria-hidden id="monthLabel" hidden>Month</span>
|
50
|
+
<span aria-hidden id="yearLabel" hidden>Year</span>
|
51
|
+
|
52
|
+
<div class="horizontal layout">
|
53
|
+
<input is="iron-input"
|
54
|
+
aria-labelledby$="[[_computeAriaLabel(ariaLabelPrefix,'monthLabel')]]"
|
55
|
+
required$="[[required]]"
|
56
|
+
maxlength="2"
|
57
|
+
bind-value="{{month}}"
|
58
|
+
placeholder="MM"
|
59
|
+
allowed-pattern="[0-9]"
|
60
|
+
prevent-invalid-input
|
61
|
+
autocomplete="cc-exp-month"
|
62
|
+
type="tel"
|
63
|
+
class="flex">
|
64
|
+
<span>/</span>
|
65
|
+
<input is="iron-input"
|
66
|
+
aria-labelledby$="[[_computeAriaLabel(ariaLabelPrefix,'yearLabel')]]"
|
67
|
+
required$="[[required]]"
|
68
|
+
maxlength="2"
|
69
|
+
bind-value="{{year}}"
|
70
|
+
placeholder="YY"
|
71
|
+
allowed-pattern="[0-9]"
|
72
|
+
prevent-invalid-input
|
73
|
+
autocomplete="cc-exp-year"
|
74
|
+
type="tel"
|
75
|
+
class="flex">
|
76
|
+
</div>
|
77
|
+
</template>
|
78
|
+
|
79
|
+
</dom-module>
|
80
|
+
|
81
|
+
<script>
|
82
|
+
Polymer({
|
83
|
+
|
84
|
+
is: 'date-input',
|
85
|
+
|
86
|
+
behaviors: [
|
87
|
+
Polymer.IronValidatableBehavior
|
88
|
+
],
|
89
|
+
|
90
|
+
properties: {
|
91
|
+
/**
|
92
|
+
* Set to true to mark the input as required.
|
93
|
+
*/
|
94
|
+
required: {
|
95
|
+
type: Boolean,
|
96
|
+
value: false
|
97
|
+
},
|
98
|
+
|
99
|
+
/**
|
100
|
+
* The month component of the date displayed.
|
101
|
+
*/
|
102
|
+
month: {
|
103
|
+
type: String
|
104
|
+
},
|
105
|
+
|
106
|
+
/**
|
107
|
+
* The year component of the date displayed.
|
108
|
+
*/
|
109
|
+
year: {
|
110
|
+
type: String
|
111
|
+
},
|
112
|
+
|
113
|
+
/**
|
114
|
+
* The date object used by the validator. Has two properties, month and year.
|
115
|
+
*/
|
116
|
+
date: {
|
117
|
+
notify: true,
|
118
|
+
type: Object
|
119
|
+
},
|
120
|
+
|
121
|
+
validator: {
|
122
|
+
type: String,
|
123
|
+
value: 'date-validator'
|
124
|
+
},
|
125
|
+
|
126
|
+
ariaLabelPrefix: {
|
127
|
+
type:String
|
128
|
+
}
|
129
|
+
|
130
|
+
},
|
131
|
+
|
132
|
+
observers: [
|
133
|
+
'_computeDate(month,year)'
|
134
|
+
],
|
135
|
+
|
136
|
+
_computeDate: function(month, year) {
|
137
|
+
// Months are 0-11.
|
138
|
+
this.date = {month: month, year: year};
|
139
|
+
this.fire('dateChanged', this.date);
|
140
|
+
},
|
141
|
+
|
142
|
+
validate: function() {
|
143
|
+
// Empty, non-required input is valid.
|
144
|
+
if (!this.required && this.month == '' && this.year == '') {
|
145
|
+
return true;
|
146
|
+
}
|
147
|
+
this.invalid = !this.$.validator.validate(this.date);
|
148
|
+
this.fire('iron-input-validate');
|
149
|
+
return !this.invalid;
|
150
|
+
},
|
151
|
+
|
152
|
+
_computeAriaLabel: function(dateLabel, monthLabel) {
|
153
|
+
return dateLabel + ' ' + monthLabel;
|
154
|
+
}
|
155
|
+
|
156
|
+
});
|
157
|
+
</script>
|
@@ -0,0 +1,38 @@
|
|
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/iron-validator-behavior.html">
|
13
|
+
|
14
|
+
<script>
|
15
|
+
|
16
|
+
Polymer({
|
17
|
+
|
18
|
+
is: 'date-validator',
|
19
|
+
|
20
|
+
behaviors: [
|
21
|
+
Polymer.IronValidatorBehavior
|
22
|
+
],
|
23
|
+
|
24
|
+
validate: function(date) {
|
25
|
+
if (!date)
|
26
|
+
return false;
|
27
|
+
|
28
|
+
if (date.month > 11 || date.month < 0)
|
29
|
+
return false;
|
30
|
+
|
31
|
+
var then = new Date ('20' + date.year, date.month);
|
32
|
+
var now = new Date();
|
33
|
+
return (then > now);
|
34
|
+
}
|
35
|
+
|
36
|
+
});
|
37
|
+
|
38
|
+
</script>
|
@@ -0,0 +1,53 @@
|
|
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>gold-cc-expiration-input demo</title>
|
19
|
+
|
20
|
+
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
|
21
|
+
<link rel="import" href="../gold-cc-expiration-input.html">
|
22
|
+
|
23
|
+
<link rel="stylesheet" href="../../paper-styles/paper-styles.html">
|
24
|
+
<link rel="import" href="../../paper-styles/demo-pages.html">
|
25
|
+
</head>
|
26
|
+
<style>
|
27
|
+
gold-cc-expiration-input {
|
28
|
+
width: 200px;
|
29
|
+
margin-left: auto;
|
30
|
+
margin-right: auto;
|
31
|
+
}
|
32
|
+
</style>
|
33
|
+
<body>
|
34
|
+
<div class="vertical-section-container centered">
|
35
|
+
<h4>Standard</h4>
|
36
|
+
<div class="vertical-section">
|
37
|
+
<gold-cc-expiration-input></gold-cc-expiration-input>
|
38
|
+
<gold-cc-expiration-input label="Auto-validating" auto-validate></gold-cc-expiration-input>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<h4>Pre-validated</h4>
|
42
|
+
<div class="vertical-section">
|
43
|
+
<gold-cc-expiration-input auto-validate value="11/15"></gold-cc-expiration-input>
|
44
|
+
<gold-cc-expiration-input auto-validate value="31/23"></gold-cc-expiration-input>
|
45
|
+
<gold-cc-expiration-input auto-validate value="11/"></gold-cc-expiration-input>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<h4>Custom error message</h4>
|
49
|
+
<div class="vertical-section">
|
50
|
+
<gold-cc-expiration-input required auto-validate error-message="Please enter a valid date" label="Credit Card Expiration"></gold-cc-expiration-input>
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
</body>
|
@@ -0,0 +1,131 @@
|
|
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
|
+
<link rel="import" href="../polymer/polymer.html">
|
11
|
+
<link rel="import" href="../paper-input/paper-input-behavior.html">
|
12
|
+
<link rel="import" href="../paper-input/paper-input-container.html">
|
13
|
+
<link rel="import" href="../paper-input/paper-input-error.html">
|
14
|
+
<link rel="import" href="../iron-input/iron-input.html">
|
15
|
+
<link rel="import" href="../iron-form-element-behavior/iron-form-element-behavior.html">
|
16
|
+
|
17
|
+
<link rel="import" href="date-input.html">
|
18
|
+
|
19
|
+
<!--
|
20
|
+
`gold-cc-expiration-input` is a single-line text field with Material Design styling
|
21
|
+
for entering a credit card's expiration date
|
22
|
+
|
23
|
+
<gold-cc-expiration-input></gold-cc-expiration-input>
|
24
|
+
<gold-cc-expiration-input value="11/15"></gold-cc-expiration-input>
|
25
|
+
|
26
|
+
It may include an optional label, which by default is "Expiration Date".
|
27
|
+
|
28
|
+
<gold-cc-expiration-input label="Date"></gold-cc-expiration-input>
|
29
|
+
|
30
|
+
|
31
|
+
### Validation
|
32
|
+
|
33
|
+
The input can check whether the entered date is a valid, future date.
|
34
|
+
|
35
|
+
The input can be automatically validated as the user is typing by using
|
36
|
+
the `auto-validate` and `required` attributes. For manual validation, the
|
37
|
+
element also has a `validate()` method, which returns the validity of the
|
38
|
+
input as well sets any appropriate error messages and styles.
|
39
|
+
|
40
|
+
See `Polymer.PaperInputBehavior` for more API docs.
|
41
|
+
|
42
|
+
### Styling
|
43
|
+
|
44
|
+
See `Polymer.PaperInputContainer` for a list of custom properties used to
|
45
|
+
style this element.
|
46
|
+
|
47
|
+
@group Gold Elements
|
48
|
+
@hero hero.svg
|
49
|
+
@demo demo/index.html
|
50
|
+
@class gold-cc-expiration-input
|
51
|
+
-->
|
52
|
+
|
53
|
+
<dom-module id="gold-cc-expiration-input">
|
54
|
+
<style>
|
55
|
+
:host {
|
56
|
+
display: block;
|
57
|
+
}
|
58
|
+
</style>
|
59
|
+
|
60
|
+
<template>
|
61
|
+
|
62
|
+
<paper-input-container id="container"
|
63
|
+
always-float-label
|
64
|
+
auto-validate="[[autoValidate]]"
|
65
|
+
attr-for-value="date">
|
66
|
+
|
67
|
+
<label hidden$="[[!label]]">[[label]]</label>
|
68
|
+
|
69
|
+
<date-input class="paper-input-input" id="input"
|
70
|
+
aria-label-prefix="[[_ariaLabelledBy]]"
|
71
|
+
required$="[[required]]"
|
72
|
+
month="[[_computeMonth(value)]]"
|
73
|
+
year="[[_computeYear(value)]]"
|
74
|
+
autocomplete$="[[autocomplete]]">
|
75
|
+
</date-input>
|
76
|
+
|
77
|
+
<template is="dom-if" if="[[errorMessage]]">
|
78
|
+
<paper-input-error>[[errorMessage]]</paper-input-error>
|
79
|
+
</template>
|
80
|
+
|
81
|
+
</paper-input-container>
|
82
|
+
</template>
|
83
|
+
|
84
|
+
</dom-module>
|
85
|
+
|
86
|
+
<script>
|
87
|
+
(function() {
|
88
|
+
|
89
|
+
Polymer({
|
90
|
+
|
91
|
+
is: 'gold-cc-expiration-input',
|
92
|
+
|
93
|
+
behaviors: [
|
94
|
+
Polymer.PaperInputBehavior,
|
95
|
+
Polymer.IronFormElementBehavior
|
96
|
+
],
|
97
|
+
|
98
|
+
properties: {
|
99
|
+
/**
|
100
|
+
* The label for this input.
|
101
|
+
*/
|
102
|
+
label: {
|
103
|
+
type: String,
|
104
|
+
value: "Expiration Date"
|
105
|
+
}
|
106
|
+
},
|
107
|
+
|
108
|
+
listeners: {
|
109
|
+
'dateChanged': '_dateChanged'
|
110
|
+
},
|
111
|
+
|
112
|
+
_dateChanged: function(event) {
|
113
|
+
if (event.detail.month && event.detail.year)
|
114
|
+
this.value = event.detail.month + '/' + event.detail.year;
|
115
|
+
},
|
116
|
+
|
117
|
+
_computeMonth: function(value) {
|
118
|
+
// Date is in MM/YY format.
|
119
|
+
return value.split('/')[0];
|
120
|
+
},
|
121
|
+
|
122
|
+
_computeYear: function(value) {
|
123
|
+
// Date is in MM/YY format.
|
124
|
+
return value.split('/')[1];
|
125
|
+
}
|
126
|
+
|
127
|
+
})
|
128
|
+
|
129
|
+
})();
|
130
|
+
|
131
|
+
</script>
|