<!-- @license Copyright (c) 2015 The Polymer Project Authors. All rights reserved. This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as part of the polymer project is also subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt --> <link rel="import" href="../../polymer/polymer.html"> <link rel="import" href="../../iron-input/iron-input.html"> <link rel="import" href="ssn-validator.html"> <dom-module id="ssn-input"> <template> <style> :host { display: inline-block; } input[is="iron-input"] { font: inherit; outline: none; box-shadow: none; border: none; width: auto; text-align: center; } </style> <ssn-validator></ssn-validator> <input is="iron-input" maxlength="3" bind-value="{{_ssn1}}" size="3" aria-label="First 3 digits of social security number"> - <input is="iron-input" maxlength="2" bind-value="{{_ssn2}}" size="2" aria-label="Middle 2 digits of social security number"> - <input is="iron-input" maxlength="4" bind-value="{{_ssn3}}" size="4" aria-label="Last 4 digits of social security number"> </template> </dom-module> <script> Polymer({ is: 'ssn-input', behaviors: [ Polymer.IronValidatableBehavior ], properties: { value: { notify: true, type: String }, _ssn1: { type: String }, _ssn2: { type: String }, _ssn3: { type: String }, validator: { type: String, value: 'ssn-validator' } }, observers: [ '_computeValue(_ssn1,_ssn2,_ssn3)' ], _computeValue: function(ssn1, ssn2, ssn3) { this.value = ssn1.trim() + '-' + ssn2.trim() + '-' + ssn3.trim(); } }); </script>