<!– @license Copyright © 2015 The Polymer Project Authors. All rights reserved. This code may only be used under the BSD style license found at polymer.github.io/LICENSE.txt The complete set of authors may be found at polymer.github.io/AUTHORS.txt The complete set of contributors may be found at 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 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=“../../iron-flex-layout/iron-flex-layout.html”> <link rel=“import” href=“ssn-validator.html”>

<dom-module id=“ssn-input”>

<template>

  <style>
    :host {
      display: inline-block;
    }

    :host([hidden]) {
      display: none !important;
    }

    input[is="iron-input"] {
      font: inherit;
      outline: none;
      box-shadow: none;
      border: none;
      width: auto;
      text-align: center;
    }

    .container {
      @apply(--layout-horizontal);
    }
  </style>

  <ssn-validator></ssn-validator>

  <div class="container">

    <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">

  </div>

</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>