139 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
Copyright (c) 2014 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
 | 
						|
The complete set of authors may be found at http://polymer.github.io/AUTHORS
 | 
						|
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
 | 
						|
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
 | 
						|
-->
 | 
						|
 | 
						|
<!--
 | 
						|
 | 
						|
Material Design: <a href="http://www.google.com/design/spec/components/text-fields.html#text-fields-single-line-text-field">Single line text field</a>
 | 
						|
 | 
						|
`paper-input` is a single-line text field for user input. It is a convenience element composed of
 | 
						|
a `paper-input-decorator` and a `input is="core-input"`.
 | 
						|
 | 
						|
Example:
 | 
						|
 | 
						|
    <paper-input label="Your Name"></paper-input>
 | 
						|
 | 
						|
If you need more control over the `input` element, use `paper-input-decorator`.
 | 
						|
 | 
						|
Theming
 | 
						|
-------
 | 
						|
 | 
						|
`paper-input` can be styled similarly to `paper-input-decorator`.
 | 
						|
 | 
						|
Form submission
 | 
						|
---------------
 | 
						|
 | 
						|
Unlike inputs using `paper-input-decorator` directly, `paper-input` does not work out of
 | 
						|
the box with the native `form` element. This is because the native `form` is not aware of
 | 
						|
shadow DOM and does not treat `paper-input` as a form element.
 | 
						|
 | 
						|
Use `paper-input-decorator` directly, or see
 | 
						|
<a href="https://github.com/garstasio/ajax-form">`ajax-form`</a> for a possible solution
 | 
						|
to submitting a `paper-input`.
 | 
						|
 | 
						|
Validation
 | 
						|
----------
 | 
						|
 | 
						|
Use `paper-input-decorator` if you would like to implement validation.
 | 
						|
 | 
						|
@group Paper Elements
 | 
						|
@element paper-input
 | 
						|
@homepage github.io
 | 
						|
-->
 | 
						|
<link href="../polymer/polymer.html" rel="import">
 | 
						|
<link href="../core-input/core-input.html" rel="import">
 | 
						|
 | 
						|
<link href="paper-input-decorator.html" rel="import">
 | 
						|
 | 
						|
<polymer-element name="paper-input">
 | 
						|
 | 
						|
<template>
 | 
						|
 | 
						|
  <style>
 | 
						|
    :host {
 | 
						|
      display: inline-block;
 | 
						|
    }
 | 
						|
  </style>
 | 
						|
 | 
						|
  <paper-input-decorator id="decorator" label="{{label}}" floatingLabel="{{floatingLabel}}" value="{{value}}" disabled?="{{disabled}}">
 | 
						|
    <input is="core-input" value="{{value}}" committedValue="{{committedValue}}" on-change="{{changeAction}}" disabled?="{{disabled}}">
 | 
						|
  </paper-input-decorator>
 | 
						|
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
 | 
						|
  Polymer('paper-input', {
 | 
						|
 | 
						|
    publish: {
 | 
						|
      /**
 | 
						|
       * The label for this input. It normally appears as grey text inside
 | 
						|
       * the text input and disappears once the user enters text.
 | 
						|
       *
 | 
						|
       * @attribute label
 | 
						|
       * @type string
 | 
						|
       * @default ''
 | 
						|
       */
 | 
						|
      label: '',
 | 
						|
 | 
						|
      /**
 | 
						|
       * If true, the label will "float" above the text input once the
 | 
						|
       * user enters text instead of disappearing.
 | 
						|
       *
 | 
						|
       * @attribute floatingLabel
 | 
						|
       * @type boolean
 | 
						|
       * @default false
 | 
						|
       */
 | 
						|
      floatingLabel: false,
 | 
						|
 | 
						|
      /**
 | 
						|
       * Set to true to style the element as disabled.
 | 
						|
       *
 | 
						|
       * @attribute disabled
 | 
						|
       * @type boolean
 | 
						|
       * @default false
 | 
						|
       */
 | 
						|
      disabled: {value: false, reflect: true},
 | 
						|
 | 
						|
      /**
 | 
						|
       * The current value of the input.
 | 
						|
       * 
 | 
						|
       * @attribute value
 | 
						|
       * @type String
 | 
						|
       * @default ''
 | 
						|
       */
 | 
						|
      value: '',
 | 
						|
      
 | 
						|
      /**
 | 
						|
       * The most recently committed value of the input.
 | 
						|
       * 
 | 
						|
       * @attribute committedValue
 | 
						|
       * @type String
 | 
						|
       * @default ''
 | 
						|
       */
 | 
						|
      committedValue: ''
 | 
						|
 | 
						|
    },
 | 
						|
 | 
						|
    valueChanged: function() {
 | 
						|
      this.$.decorator.updateLabelVisibility(this.value);
 | 
						|
    },
 | 
						|
 | 
						|
    changeAction: function(e) {
 | 
						|
      if (!window.ShadowDOMPolyfill) {
 | 
						|
        // re-fire event that does not bubble across shadow roots
 | 
						|
        this.fire('change', null, this);
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
  });
 | 
						|
 | 
						|
</script>
 | 
						|
 | 
						|
</polymer-element>
 |